[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
【程序82】
题目:八进制转换为十进制
方法一
  1. @echo off
  2. :begin
  3. set /p input=请输入一个八进制数:
  4. set num=0
  5. set count=1
  6. :start
  7. set /a Remainder=%input%%%10
  8. if %Remainder% gtr 7 goto error
  9. set /a num+=%Remainder%*count
  10. set /a count*=8
  11. set /a bug=%input%
  12. set /a input/=10
  13. if %bug% gtr 0 goto start
  14. echo 转换后的十进制数为:%num%
  15. pause>nul & exit
  16. :error
  17. echo 该数不是八进制数,请重新输入!
  18. pause>nul & cls
  19. goto begin
复制代码
方法二
  1. @echo off
  2. set /p input=请输入一个八进制数:
  3. set /a output=0%input%
  4. echo 转换后的十进制数为:%output%
  5. pause>nul
复制代码

[ 本帖最后由 Silversky 于 2010-7-27 13:17 编辑 ]

TOP

【程序30
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

  1. @echo off
  2. set /p input=请输入一个数:
  3. set put=1%input%1
  4. :loop
  5. set put=%put:~1,-1%
  6. if "%input%"=="" goto no
  7. if "%put%"==""  goto yes
  8. if "%put:~0,1%"=="%put:~-1%" goto loop
  9. :no
  10. echo %input%不是回文数
  11. pause>nul & exit
  12. :yes
  13. echo %input%是回文数
  14. pause>nul
复制代码


[ 本帖最后由 Silversky 于 2010-7-26 20:01 编辑 ]

TOP

【程序21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

  1. @echo off
  2. set a=1
  3. echo 倒数第1天时有%a%个桃子
  4. for /l %%i in (2,1,10) do (
  5. set /a a=a*2+2
  6. call echo 倒数第%%i天时有%%a%%个桃子
  7. )
  8. pause>nul
复制代码

[ 本帖最后由 Silversky 于 2010-7-27 12:00 编辑 ]

TOP

【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  1. @echo off & setlocal enabledelayedexpansion
  2. set/p n=请输入月份:
  3. set a1=1
  4. set a3=0
  5. for /l %%i in (1,1,%n%) do (
  6. set a2=!a3!
  7. set /a a3+=a1
  8. set a1=!a2!
  9. echo !a3!
  10. )
  11. pause>nul
复制代码

[ 本帖最后由 Silversky 于 2010-7-27 13:13 编辑 ]

TOP

【程序13
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%i in (100 1 999) do (
  3. set x=%%i && set /a a=b=c=1
  4. for /l %%z in (1,1,3) do set /a a*=!x:~0,1! & set /a b*=!x:~1,1! & set /a c*=!x:~2,1!
  5. set /a n=a+b+c
  6. if "!n!" == "%%i" echo %%i
  7. )
  8. pause>nul
复制代码

TOP

【程序14
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
  1. @echo off
  2. set /p n=请输入要分解的数:
  3. set/p=%n%分解为1<nul
  4. set count=1
  5. :s
  6. set /a count+=1
  7. :s1
  8. set /a remainder=%n%%%%count%
  9. if not %remainder% equ 0 goto s
  10. set /a divisor=%n%/%count%
  11. set/p=*%count%<nul
  12. set n=%divisor%
  13. if "%n%"=="1" (pause>nul & exit)
  14. goto s1
复制代码

TOP

【程序16】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
  1. @echo off
  2. set /p n1=请输入第一个数:&& set /p n2=请输入第二个数:
  3. set/a result=%n1%*%n2%
  4. :ss
  5. set /a temp=%n1%%%%n2%
  6. if %temp% neq 0 (set /a n1=%n2% & set /a n2=%temp% & goto :ss)
  7. set /a result=%result%/%n2%
  8. echo 最大公约数为:%n2%
  9. echo 最小公倍数为:%result%
  10. pause>nul
复制代码

TOP

【程序25】
题目:求1+2!+3!+...+20!的和
  1. @echo off
  2. set a=1
  3. set b=0
  4. for /l %%i in (1,1,20) do (set /a a*=%%i && set /a b+=a)
  5. echo 1+2!+3!...+20!=%b%
  6. pause>nul
复制代码

TOP

【程序80】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
  1. @echo off & setlocal EnableDelayedExpansion
  2. set count=0
  3. set bad=0
  4. for /l %%i in (4,4,2000) do (
  5. if !count! equ 4 (if !bad! equ 0 (echo 原来最少有!j!个桃子 & pause>nul & exit))
  6. set bad=0
  7. set count=0
  8. set l=%%i
  9. for /l %%z in (0,1,4) do (
  10. set /a j=!l!/4*5+1
  11. set l=!j!
  12. set /a k=!j!%%4
  13. if !k! equ 0 (set /a count+=1) else (if !count! lss 4 (set bad=1))
  14. )
  15. )
复制代码

TOP

【程序69】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
方法一
  1. @echo off & setlocal enabledelayedexpansion
  2. set /p n=请输入一个数:
  3. for /l %%i in (%n% -1 1) do set total= %%i !total!
  4. set count=%n%
  5. :loop
  6. if !count! neq 1 (
  7.   for %%i in (%total%) do (
  8.     set /a num+=1
  9.     if !num! equ 3 (
  10.       set num=0
  11.       set total=!total: %%i =!
  12.       set /a count-=1
  13.     )
  14.   )
  15. goto loop
  16. )
  17. echo 最后留下的序号为:%total%
  18. pause>nul
复制代码

方法二
  1. @echo off
  2. set /p n=请输入一个数:
  3. set r=0
  4. for /l %%i in (2,1,%n%) do (set /a a=r+3 && set /a r=a%%%%i)
  5. set /a r+=1
  6. echo %r%
  7. pause>nul
复制代码

TOP

【程序20

题目:一球从100高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在10次落地时,共经过多少米?第10次反弹多高?
  1. @echo off & setlocal enabledelayedexpansion
  2. set n=100000000
  3. set /a m=n/2
  4. for /l %%i in (2,1,10) do (set /a n=n+2*m && set /a m/=2)
  5. echo 共经过!n:~0,3!.!n:~-6!米
  6. echo 第10次反弹0.0!m:~-6!米
  7. pause>nul
复制代码

TOP

【程序9】
题目:要求输出国际象棋棋盘。

  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%i in (8,-1,1) do (
  3.   for /l %%j in (8,-1,1) do (
  4.   set /a n=%%i%%2+%%j%%2
  5.   if !n! == 1 (set/p=■<nul) else (set/p=  <nul)
  6.   )
  7.   echo/
  8. )
  9. pause>nul
复制代码

TOP

返回列表