[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

评分人数

  1. @echo off
  2. goto :START
  3. 程序2:赵姑娘的岁数有以下特点:
  4. 1. 它的3次方是一个四位数,而4次方是一个六位数;   2. 这四位数和六位数正好是0到9这十个数字组成.   
  5. 问,这个数应该是什么数?
  6. :START
  7. ::根据题意(平方是4位数),确定求值范围。
  8. for /l %%i in (10,1,21) do (
  9.     setlocal EnableDelayedExpansion
  10.     set /a sum1=0
  11.     set /a sum2=1
  12.     set /a num1=%%i*%%i*%%i
  13.     set /a num2=!num1!*%%i
  14.     set n0=!num1:~0,1!
  15.     set n1=!num1:~1,1!
  16.     set n2=!num1:~2,1!
  17.     set n3=!num1:~3,1!  
  18.     set n4=!num2:~0,1!
  19.     set n5=!num2:~1,1!
  20.     set n6=!num2:~2,1!
  21.     set n7=!num2:~3,1!
  22.     set n8=!num2:~4,1!
  23.     set n9=!num2:~5,1!
  24.     for /l %%j in (0,1,9) do (
  25.         if not "!n%%j!"==" " set /a sum1+=!n%%j!
  26.     )
  27.     for /l %%j in (0,1,9) do (
  28.         if not "!n%%j!"==" " (if !n%%j! neq 0 (set /a sum2*=!n%%j!))
  29.     )
  30.     if !sum1! equ 45 (if !sum2! equ 362880 (
  31.         echo 赵姑娘的岁数是%%i
  32.         echo 2次方: !num1!
  33.         echo 3次方: !num2!
  34.     ))
  35. endlocal
  36. )
  37. pause>nul
复制代码

TOP

回复 27# qq399254368


    27# 好思路

TOP

回复 27# battab


    好思路!

TOP

都是高手啊,看不明白
批处理爱好者,新学员

TOP

都是高手啊,看不懂
批处理爱好者,新学员

TOP

程序14
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1,1,10000) do (
  3. set a=%%i
  4. set /a b=!a!%%3
  5. set /a c=!a!%%5
  6. set /a d=!a!%%15
  7. if !b!==2 if !c!==1 (echo !d!&goto end)
  8. )
  9. :end
  10. pause
复制代码

TOP

程序11,写了下面代码,为什么从2开始计算的时候是正确的,计算到13以后就成负数了,请问错在什么地方!
  1. @echo off
  2. set a=1
  3. set b=1
  4. :start
  5. set /a a+=1
  6. set /a b=b*a
  7. set /a c=%b%%%1000000
  8. if %c%==0 (echo %a%) else (goto start)
  9. pause
复制代码

TOP

第七题
方法1:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set x=75
  4. :start
  5. set /a x+=1
  6. set /a var0="(!x!-75)*20"
  7. set /a var1="(!x!+100)*15"
  8. if !var0!==!var1! (echo !x!) else (goto start)
  9. pause
复制代码
方法2
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (75,1,1000) do (
  4. set x=%%i
  5. set /a x+=1
  6. set /a var0="(!x!-75)*20"
  7. set /a var1="(!x!+100)*15"
  8. if !var0!==!var1! echo !x!
  9. )
  10. pause
复制代码
方法2为什么会跑完75-1000,如何让其找到数值600就终止呢!

TOP

回复 29# qq399254368


    新手不知道如何取最小的数值,只能用goto了,求大神指导精简!

TOP

回复 28# battab


    不好意思,自行用了数学运算!

TOP

本帖最后由 qq399254368 于 2014-2-12 14:48 编辑

第六题
::五个连续自然数的和等于第三位自然数的5倍自然被5整除,所以只要算出第三位自然数被4,6整除即可!
@echo off &setlocal enabledelayedexpansion
for /l %%a in (1,1,10000) do (
set three=%%a
set /a one=!three!-2
set /a two=!three!-1
set /a fore=!three!+1
set /a five=!three!+2
set /a var0=!three!%%4
set /a var1=!three!%%6
if !var0!==0  if !var1!==0 (
echo !one! !two! !three! !fore! !five!&goto end)
)
:end
pause

TOP

回复 27# qq399254368


    “set /a a=23-all” 这句把驼峰数减去骆驼数量得到的数a是什么东西,怎么解释?
学习中

TOP

程序4:
@echo off
set /a all=60/4
set /a a=23-all
set /a b=all-a
echo 双驼峰的数量:%a%
echo 单驼峰的数量:%b%
pause

TOP

回复 1# sjzong

程序4:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a shuliang=60/4
  3. for /l %%i in (1 1 15) do (
  4. for /l %%j in (14 -1 0) do (
  5. set /a num=%%i+2*%%j,zhi=%%i+%%j
  6. if "!num!" == "23" (
  7. if "!zhi!"== "%shuliang%" (
  8. echo 单峰驼%%i只,双峰驼%%j只。
  9. )
  10. )
  11. )
  12. )
  13. pause>nul
  14. exit
复制代码
学习中

TOP

返回列表