[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

出些数学的题目给批处理新手练练

这些题目是我从网上抄了的!让大家练练!!如有版权问题请见谅!!
------------------------------------------------------------------------------------------------------
程序1:有四个数,其中任意三个数相加,所得的和分别是84,88,99,110,求这四个数?
答案:参考5楼
------------------------------------------------------------------------------------------------------
程序2:赵姑娘的岁数有以下特点:
  1. 它的3次方是一个四位数,而4次方是一个六位数;   2. 这四位数和六位数正好是0到9这十个数字组成.   问,这个数应该是什么数?
【解题思路】
取一个未知数,首先分别取得该数的立方和四次方;然后将这十个数字分别分割并都定义,最后检测从0~9是否都已经被定义,如果都被定义了,则该数满足要求,否则有重复数字,不满足要求。
答案:参考6楼
----------------------------------------------------------------------------------------------------------------------------------------------
程序3:排一本辞典的页码共用了4889个数字。这本辞典共有多少页? 答案:1499
【解题思路】:以下这个办法比较直接,直接检测数字的大小,如果小于10则为1位数字,10~99两位,....然后把所以的位数加起来即可。
---------------------------------------------------------------------------------------------------------------------------------------------
程序4:阿聪说他这次去西北看见一群骆驼,共有23个驼峰,60只脚。请问单、双峰骆驼各多少只?
【解题思路】
首先从骆驼的脚的只数确定骆驼总的数目(除以4),然后依次检测从1到15间时候有符合题目的数据;
----------------------------------------------------------------------------------------------------------------------------
程序5:有一个五位奇数,将这个五位奇数中的所有2都换成5,所有5也都换成2,其他数保持不变,得到一个新的五位数,若新五位数的一半仍比原五位数大1,那么原五位数是多少?
【解题思路】
要明确的思路是:这个特殊的数字,首位必须为2,末尾必须为5(因为原来为奇数,但后来却可以有“一半”,说明是偶数,所以可以肯定,末尾是5,后来被替换成了2。
----------------------------------------------------------------------------------------------------------------------------------------------
程序6:五个连续自然数的和分别能被2、3、4、5、6整除,求满足此条件的最小的一组数。
【解题思路】
没有什么技巧性。利用等差数列公式,先算出5个数字的总和,然后检测看它是不是能被4、5、6整除。
------------------------------------------------------------------------------------------------------------------------------
程序7:我是个三位数,其中有一个数字是“3”,还有一个数字是“1”,另一个数字是未知数。如果把“3”变成“4”、把“1”变成“3”,那么,原来的我将比假设后的我的一半还少“39”。你知道原来是个什么数?
【解题思路】
利用反证法可以知道,首位数字必须为1,所以该数的排列情况就可能为:1*3或者13*,然后去检测。
--------------------------------------------------------------------------------------------------------------------------
程序8:农夫琼斯对他老婆说:"喂,玛丽亚,如果照我的办法,卖掉75只小鸡,那么咱们的鸡饲料还能维持20夭。然而,假使照你的建议,再买进100只小鸡的话,那么鸡饲料将只够维持15天。" "啊,亲爱的,"她答道,"那我们现在有多少只小鸡呢?" 问题就在这里了,他们究竟有多少只小鸡?
【解题思路】
整个过程中,小鸡吃的饲料是不变的。假设有X只鸡,则应该有:(x-75)*20=(x+100)*15,然后写一个循环,看哪个数字合适?!
----------------------------------------------------------------------------------------------------------------------------------------------
程序9:在所有的5位数当中,只包含两个3的数字有多少个?
---------------------------------------------------------------------------
程序10:将17分成几个自然数的和,求这几个自然数的最大乘积是多少?
【解题思路】
利用高中的数学知识可以证明,凡是大于等于4的数,它都可以拆成这样的两个数:它们的和与该数相等,乘积要大于等于该数。根据这样的推论,所有的数最后都会拆成这样的形式:A*A*A*A....A为2或者3(因为只有2和3不能拆了,最后剩下的肯定只有2和3)。
举例说明:8可以这样拆(没有3):num1=2*2*2*2 也可以拆成(含有2个3):num2=2*3*3,然后只要比较两个num的大小就行了!其实应该是以3来拆的数据的乘积大!
----------------------------------------------------------------------------------------------------------------------------------------------
程序11:将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是几?
***[zouzhxi思路]***********
    要使积的最后一位是0,有两种情况:
    1.偶数×最后一位是5的数,比如:2×15=30
    2.其中一个数是整十、整百的数,比如:3×20=60
    原题中,积的最后6位数恰好都是0,所以需要6个最后一位是5的数或整十、整百的数。
    它们依次是:5,10,15,20,25。
    由于25可以写成5×5,所以25与两个偶数相乘可以使积的尾数包含两个0,比如:25×2×2=100,
    所以最后一个自然数最少应当是:25。
答案:参考8楼
---------------------------------------------------------------------------------------------------------------------------
程序12:被除数、除数和商三个数的和是181,商是12,求被除数。
--------------------------------------------------------------------------------
程序13:商店里有六箱货物,分别重15、16、18、19、20、31千克,两个顾客买走了其中五箱.已知一个顾客买的货物重量是另一个顾客的2倍,那么,商店剩下的一箱货物重量是多少千克?
【解题思路】
可以很快的推断出的一个已知条件为:那两个顾客买走的两袋货物总质量可以被3整除,另一个顾客的可以被2整除.......
----------------------------------------------------------------------------------------------------------------------------------------------
程序14:一个数除以3的余数是2,除以5的余数是1,则这个数除以15的余数是多少?
----------------------------------------------------------------------------------------------------------
程序15:有十张币值分别为1分、2分、5分、1角、2角、5角、1元、2元、5元、10元的人民币,能组成多少种不同的币值?
【解题思路】根据排列组合的相关知识,知道总共的组合可能有:num=C(10,1)+C(10,2)+..+C(10,10)
-------------------------------------------------------------------------------------------------------------------------------
程序16:两个十位数3333333333和9999999999的乘积里有几个数字是偶数? (只用乘减法能做吗?)
-----------------------------------------------------------------------------------------------------------------------------------
程序17:甲、乙、丙三个互相咬合的齿轮,若使甲轮转5圈时,乙轮转7圈,丙轮转2圈,这三个齿轮齿数最少应分别是多少齿?
----------------------------------------------------------------------------------------------------------------------------------------------
程序18:求100以内连续几个自然数之和是100.
--------------------------------------------------------------
程序19:计算2*3*……*100的积后面有几个零。
答案:参考9楼
--------------------------------------------------------------

[ 本帖最后由 sjzong 于 2009-4-17 13:39 编辑 ]
1

评分人数

回复 2楼 的帖子

初学批处理,建议从“实用”二字入手。
类似这些华而不实的东西,可以留待以后具备一定批处理功底时,再偶尔回来小试身手。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

好像都不会,有难度

TOP

第一题

  1. ::先四个数之和,然后求各个数
  2. @echo off
  3. set /a all=(84+88+99+110)/3
  4. set /a a=all-110
  5. set /a b=all-99
  6. set /a c=all-88
  7. set /a d=all-84
  8. echo %a% %b% %c% %d%
  9. pause>nul            
复制代码

TOP

第二题
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (10,1,100) do (
  3. set num1=%%a
  4. set/a num2=!num1!*!num1!*!num1!
  5. if !num2! geq 1000 if !num2! leq 9999 (
  6. set/a num3=!num2!*!num1!
  7. if !num3! geq 100000 if !num3! leq 999999 (
  8. call :pd !num2!!num3!
  9. )))
  10. pause&exit
  11. :pd
  12. for /f "delims=%1" %%i in ("0123456789") do set num4=%%i
  13. if not defined num4 echo !num1!
  14. goto :eof
复制代码
1

评分人数

TOP

回6楼 赞一个

zhouyongjun的这两句用来判断数字(0~9)有没有全部用到,实在是妙!

for /f "delims=%1" %%i in ("0123456789") do set num4=%%i
if not defined num4 echo !num1!

今天长见识了,我以前的做法分别求出这四位数和六位数,然后组成十位数,最后分别判断每一个数字是否有出现重复的!

TOP

程序11

程序11:将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是几?
程序分析:要使积的最后一位是0,就必须有一个5参与,那5是由谁提供的呢?是5的倍数提供的。
                  它们依次是:5,10,15,20,25……
                  例如:5=1×5  提供1个5 ;10=2×5 提供1个5 ; 25=5×5 提供2个5 ;125=5×5×5 提供3个5……
                  所以最后6位都是0,就必须提供6个5参与乘积,就是从5的倍数中找到分解出6个5来。
  1. @echo off&setlocal EnableDelayedExpansion
  2. set/a num=5,count=0,cishu=6
  3. :a
  4. set /a shang=!num!
  5. :b
  6. ::b这步循环是判断5的倍数能提供几个5
  7. set /a yushu=!shang! %% 5
  8. ::余数为0,表示含有1个5,count+1,接着再判断该数除以5后的商,还能不能提供5。
  9. if !yushu!==0 (
  10. set/a count+=1
  11. set/a shang/=5
  12. goto :b
  13. ) else (
  14. rem 余数不为0,表示5的个数已经求完了,判断达到6个没有,没有再求下一个5的倍数含有5的个数。
  15. if not !count!==!cishu!  (set /a num+=5 & goto :a)
  16. )
  17. echo 将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是!num!。
  18. pause
复制代码

TOP

程序19

程序19:计算2*3*……*100的积后面有几个零。
程序分析:本道题是程序11的引申题,要计算乘积有几个零,只需计算5的倍数能提供5的个数就知道了。
  1. @echo off&setlocal EnableDelayedExpansion
  2. echo 计算2*3*……*100的积后面有几个零:
  3. set/a num=5,count=0
  4. :a
  5. if !num! gtr 100 goto :end
  6. set/a shang=!num!
  7. :b
  8. set/a yushu=!shang! %% 5
  9. if !yushu!==0 (
  10.   set/a count+=1
  11.   set/a shang/=5
  12.   goto :b
  13. ) else (set/a num+=5 & goto :a)
  14. :end
  15. echo 2*3*……*100的积后面有 !count! 个0。
  16. pause
复制代码

[ 本帖最后由 sjzong 于 2009-4-17 13:38 编辑 ]

TOP

程序3:
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 问题:排一本辞典的页码共用了4889个数字。这本辞典共有多少页?
  3. set num=0
  4. for /l %%i in (1,1,5000) do (
  5. if %%i lss 10 (set/a num=!num!+1) else if %%i lss 100 (set/a num=!num!+2) else if %%i lss 1000 (set/a num=!num!+3) else if %%i lss 10000 (set/a num=!num!+4)
  6. if !num! equ 4889 (echo.答案:%%i页&pause>nul&goto :eof)
  7. )
复制代码

TOP

程序4
  1. @echo off&setlocal enabledelayedexpansion
  2. echo\阿聪说他这次去西北看见一群骆驼,共有23个驼峰,60只脚。请问单、双峰骆驼各多少只?
  3. set/a num=60/4
  4. for /l %%i in (1,1,!num!) do (
  5. set/a m=%%i,n=15-m
  6. set/a tf=m+2*n
  7. if !tf! equ 23 (echo\答:单、双峰骆驼各!m!,!n!只&pause&goto :eof)
  8. )
复制代码

TOP

程序5. 范了个低级错误。调了N次,终于调成了。

  1. @echo off&setlocal enabledelayedexpansion
  2. echo\有一个五位奇数,将这个五位奇数中的所有2都换成5,所有5也都换成2,其他数保持不变,
  3. echo\得到一个新的五位数,若新五位数的一半仍比原五位数大1,那么原五位数是多少?
  4. for /l %%i in (20005,10,29995) do (
  5. set num=%%i
  6. set var=!num:2=a!&set var=!var:5=2!&set var=!var:a=5!
  7. set/a var0=var/2-1
  8. if !var0! equ !num! (echo 答案是: !num!&pause&goto :eof)
  9. )
复制代码

[ 本帖最后由 inittab 于 2009-4-23 19:52 编辑 ]
1

评分人数

    • sjzong: 厉害!这个(20005 10 29995)可以节省循环 ...PB + 2

TOP

程序13
分析:买走的货物重量能被3整除,先计算总重量。分别减去每种货的重量。提取出能被3整除五除货物。本题恰好只能一个可以被3整除。答案很快就会出来。但为了计算两个客人都买走了那些货物,还需要对留下的5种货物进行循环计算,最终出结果。
  1. @echo off&setlocal enabledelayedexpansion
  2. cls
  3. echo.
  4. echo\   问题:商店里有六箱货物,分别重15、16、18、19、20、31千克,
  5. echo\两个顾客买走了其中五箱.已知一个顾客买的货物重量是另一个顾客的2倍,
  6. echo\那么,商店剩下的一箱货物重量是多少千克?
  7. echo\=====================================================================================
  8. set str0=15 16 18 19 20 31
  9. set/a total=15+16+18+19+20+31
  10. for %%i in (!str0!) do (
  11. set/a var1=%%i,md=total-var1,avr=md/3,ys=md%%3
  12. if !ys! equ 0 (
  13. set "str1=!str0:%%i =!"
  14. for %%j in (!str1!) do (
  15. set/a var2=%%j,var3=avr-%%j
  16. set "str2=!str1:%%j =!"
  17. for %%l in (!str2!) do (
  18. if !var3! equ %%l (
  19. set var4=!str2:%%l =!
  20. echo 答案:商店剩下的一箱货物重量是:!var1!
  21. echo 一客人买走了!var2! !var3!两箱的货物,另一客人分别买走了!var4!货物
  22. pause>nul&goto:eof
  23. )))))
复制代码
有更好的算法,请赐教。

TOP

程序8:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1 1 1000) do (
  4. set /a n1="(%%i -75)*20"
  5. set /a n2="(%%i+100)*15"
  6. if !n1!==!n2! echo %%i
  7. )
复制代码

TOP

严重打击学习热情

TOP

  1. @ echo off
  2. title=有四个数,其中任意三个数相加,求这四个数
  3. set /a num=(84+88+99+110)/3
  4. set /a num1=%num%-84
  5. set /a num2=%num%-88
  6. set /a num3=%num%-99
  7. set /a num4=%num%-110
  8. echo,第一个数%num1%
  9. echo,第二个数%num2%
  10. echo,第三个数%num3%
  11. echo,第四个数%num4%
  12. pause
复制代码

TOP

返回列表