用批处理解决数学问题文档格式.docx
《用批处理解决数学问题文档格式.docx》由会员分享,可在线阅读,更多相关《用批处理解决数学问题文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
我是个三位数,其中有一个数字是“3”,还有一个数字是“1”,另一个数字是未知数。
如果把“3”变成“4”、把“1”变成“3”,那么,原来的我将比假设后的我的一半还少“9”。
你知道原来是个什么数?
#09?
农夫琼斯对他老婆说:
"
喂,玛丽亚,如果照我的办法,卖掉75只小鸡,那么咱们的鸡饲料还能维持20夭。
然而,假使照你的建议,再买进100只小鸡的话,那么鸡饲料将只够维持15天。
啊,亲爱的,"
她答道,"
那我们现在有多少只小鸡呢?
问题就在这里了,他们究竟有多少只小鸡?
#10!
在所有的5位数当中,只包含两个3的数字有多少个?
#11!
将17分成几个自然数的和,求这几个自然数的最大乘积是多少?
#12?
将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是几?
#13!
被除数、除数和商三个数的和是181,商是12,求被除数。
#14?
商店里有六箱货物,分别重15、16、18、19、20、31千克,两个顾客买走了其中五箱.已知一个顾客买的货物重量是另一个顾客的2倍,那么,商店剩下的一箱货物重量是多少千克?
#15?
一个数除以3的余数是2,除以5的余数是1,则这个数除以15的余数是多少?
#16?
1.p是质数,且p×
p+1也是质数。
求2006×
p。
2.2006个2的乘积除以7的余数是多少。
========================================================================================
解决代码
【01】by[lxmxn]
@echooff&
&
setlocalENABLEDELAYEDEXPANSION
for%%ain(123456789)do(
for%%bin(0123456789)do(
for%%cin(0123456789)do(
set/aresult=%%a*%%a*%%a+%%b*%%b*%%b+%%c*%%c*%%c
if"
!
result!
=="
%%a%%b%%c"
(
echo%%a%%b%%c是水仙花数!
)
)
pause
【02】by[lxmxn]
【03】by[youxi01]
@echooff
setlocalenabledelayedexpansion
for/l%%iin(10130)do(
:
清空变量
setflag=
for/l%%ain(019)doset%%a=
取得立方和四次方
set/acube=%%i*%%i*%%i
set/as=!
cube!
*%%i
if!
geq1000if!
lss10000(
s!
geq100000if!
lss1000000(
setnum=!
call:
test!
num!
ifnotdefinedflagecho%%i!
pause>
nul
test
for/l%%ain(019)do(
setvar=%1
将参数的第一个数字赋值给var_;
检查变量值!
var_!
是否已经被作为变量被定义。
setvar_=!
var:
~%%a,1!
ifdefined!
setflag=1&
goto:
eof
set!
=A
)
【04】by[youxi01]
set/at_num=0
echo正在检测数据.....
for/l%%iin(114889)do(
t_num!
lss4889(
if%%ilss10set/at_num+=1
if%%igeq10if%%ilss100set/at_num+=2
if%%igeq100if%%ilss1000set/at_num+=3
if%%igeq1000set/at_num+=4
)elseset/anum=%%i-1&
exit
echo要求的数为:
%num%
【05】by[youxi01]
set/aF_num=23
set/aJ_num=60/4
for/l%%iin(11%J_num%)do(
set/aS_num=%%i
set/aB_num=%J_num%-%%i
set/anum=!
S_num!
+2*!
B_num!
!
test
if%1EQU%F_num%echo可能的组合为:
单峰数目=%2双峰数目=%3
eof
【06】by[youxi01]
答案是:
29995。
@echooff&
echo正在检测数据...
for/l%%bin(019)do(
for/l%%cin(019)do(
set/aFnum=2%%a%%b%%c5
setBnum=!
Fnum:
5=A!
Bnum:
2=5!
set/aBnum=!
A=2!
set/aFnum_=2*!
Fnum!
+2
Bnum!
EQU!
Fnum_!
echo!
)))
echo检测完毕!
说明:
该程序在XPprosp2下测试通过。
解决这个问题,首先我们要明确这个数字结尾必须是5,因为只有这样,才可以在转化后才是偶数,才可以被2整除;
而且首位数字必须是:
2......
【07】by[youxi01]
答20楼:
答案是1011121314
echo正在检测数据....
for/l%%iin(1110000)do(
set/aflag=0
set/anum=5*%%i+10
set/anum1=!
%%4
set/anum2=!
%%5
set/anum3=!
%%6
for%%ain(!
num1!
num2!
num3!
)do(
if%%aNEQ0set/aflag=1
flag!
EQU0set/anum=%%i&
for/l%%iin(014)do(
set/anum%%i=%num%+%%i
echo要求的连续的5个自然数为:
%num0%%num1%%num2%%num3%%num4%
xpprosp2下测试通过
【08】by[youxi01]
rem经推算,首位数字必须为1,(除非未知数为1,为1的情况在第一个for中也处理了)
for/l%%iin(019)do(
set/aFnum=1%%i3
set/aBnum=3%%i4
/2-9
set/aFnum=13%%i
set/aBnum=34%%i
【09】by[youxi01]
rem小鸡的只数至少有76只:
for/l%%iin(76110000)do(
set/aFnum=%%i*20-75*20
set/aBnum=%%i*15+100*15
echo小鸡的只数为:
%%i&
exit)
【10】by[youxi01]
echo正在检测数据........
set/aflag=0
for/l%%iin(10000,1,99999)do(
setnum=%%i
rem前面加个1是为了防止类似30820的特殊情况。
set/anum=1!
num:
3=!
lss2000if!
gtr200set/aflag+=1)
echo%flag%
nul
【11】by[youxi01]
第11题稍微难一点。
利用高中的数学知识可以证明,凡是大于等于4的数,它都可以这样的两个数,它们
的和与该数相等,乘积要大于等于该数。
根据这样的推论,所有的数最后都会拆成这样的形式:
A*A*A*A....A为2或者3(因为只有2和3不能拆了,最后剩下的肯定只有2和3)。
所以我们就可以得到下面
的代码:
(答案是486,我不知道对不对^-^)
setnum=17
set/aCnum=%num%/3
set/aRnum=%num%%%2
set/aTnum=0
for/l%%iin(%Rnum%2%Cnum%)do(
setnum_=1
set/anum_tem=%num%/2-%%i*3/2
for/l%%ain(11%%i)do(
set/anum_*=3)
for/l%%bin(11!
num_tem!
set/anum_*=2)
num_!
gtr!
Tnum!
set/aTnum=!
echo!
【12】by[youxi01]
set/anum=1
for/l%%iin(2110000)do(
test%%i
echo%%i!
echo最小的自然数为:
echo.
*%1
for/l%%iin(115)do(
~-1!
EQU0(set/aflag+=1&
~0,-1!
)else(
&
eof))
【13】by[youxi01]
for/l%%ain(901180)do(
for/l%%bin(11%%a)do(
set/anum=%%a%%%%b
EQU0(
set/anum=%%a/%%b
set/anum_=!
+%%a+%%b
EQU181echo这样的数有,被除数:
%%a除数:
%%b商:
【14】by[lxmxn]
【15】by[lxmxn]
【16】by[lxmxn]
【17】by[lxmxn]
【18】by[lxmxn]
【19】by[lxmxn]
【20】by[lxmxn]
【21】by[lxmxn]
===================================================================================