批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖
程序1
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "number=1 2 3 4"
  4. for %%a  in (%number%) do (
  5.   set num1=!number:%%a=!
  6.   for %%b in (!num1!) do (
  7.     set num2=!num1:%%b=!
  8.     for %%c in (!num2!) do (
  9.       echo %%a%%b%%c
  10.     )
  11.   )
  12. )
  13. echo    按任意键退出!
  14. pause>nul
复制代码

TOP

程序4
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 输入日期(格式:2009-11-24),判断这一天是这一年的第几天?
  4. set /p input=请输入日期:
  5. for /f "tokens=1-3 delims=-" %%a in ("%input%") do (
  6.   call :calcdays %%a %%b %%c
  7. )
  8. echo 这一天是这一年的第%days%天
  9. echo    按任意键退出!
  10. pause>nul
  11. exit
  12. :calcdays
  13. set "month1=31 28 31 30 31 30 31 31 30 31 30 31"
  14. set "month2=31 29 31 30 31 30 31 31 30 31 30 31"
  15. set isleapyearflag=1
  16. call :isleapyear %1
  17. set /a months=%2-1
  18. for %%A in (!month%isleapyearflag%!) do (
  19.   if !months! gtr 0 (
  20.     set /a months-=1
  21.     set /a days+=%%A
  22.   )
  23. )
  24. set /a days+=%3
  25. goto :eof
  26. :isleapyear
  27. set /a flag1= %1%%4
  28. if !flag1! equ 0 (
  29.   set /a flag2=%1%%100
  30.   if !flag2! equ 0 (
  31.     set /a flag3=%1%%400
  32.     if !flag3! equ 0 (
  33.       set isleapyearflag=2
  34.     ) else (set isleapyearflag=1)
  35.   ) else (set isleapyearflag=2)
  36. ) else (set isleapyearflag=1)
  37. goto :eof
复制代码

TOP

程序8(正三角)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,9) do (
  4.   for /l %%b in (1,1,9) do (
  5.     if %%b leq %%a (
  6.       set /a ans=%%a*%%b
  7.       set /p=%%a*%%b=!ans!  <nul
  8.     )
  9.   )
  10.   echo.
  11. )
  12. echo    按任意键退出!
  13. pause>nul
复制代码

TOP

程序8:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 9) do (
  3. for /l %%j in (%%i 1 9) do (echo %%i*%%j))
  4. pause
复制代码
只会这么多还望指教

TOP

程序1
  1. @echo off
  2. for /l %%i in (1 1 4) do (
  3.    for /l %%j in (1 1 4) do (
  4.       if not %%j==%%i for /l %%k in (1 1 4) do (
  5.          if not %%k==%%i (if not %%k==%%j echo %%i%%j%%k)
  6.          )
  7.       )
  8.    )
  9. pause>nul
复制代码

TOP

程序4
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. set /p year=年:
  5. set /p moon=月:
  6. set /p day=日:
  7. set /a days=0
  8. set /a aa=%year% %% 4
  9. set /a bb=%year% %% 100
  10. if %aa% equ 0 (
  11.    if not %bb% equ 0 (
  12.       if %moon% gtr 2 set days=1
  13.    )
  14. )
  15. set /a days=%days%+%day%
  16. for %%i in (0 31 28 31 30 31 30 31 31 30 31 30) do (
  17.    set /a days=!days!+%%i
  18.    set /a n=!n!+1
  19.    if !n! equ %moon% echo !days! & pause>nul &exit
  20. )
复制代码

TOP

不同数字排列

答案为24个
  1. @echo off
  2. title 1-无重复三位数
  3. echo.
  4. setlocal enabledelayedexpansion
  5. echo 题目:
  6. echo 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
  7. set /a n=0
  8. set /a s=0
  9. for /l %%i in (1,1,4) do (
  10. set /a s=100*%%i
  11.    for /l %%j in (1,1,4) do (
  12.       if %%i neq %%j (
  13.            set /a s=!s!+10*%%j
  14.          for /l %%k in (1,1,4) do (
  15.           if %%i neq %%k (
  16.              if %%j neq %%k (
  17.                set /a n=!n! + 1
  18.                set /a s=!s!+%%k
  19.                echo !s!
  20.                set /a s=!s!-%%k
  21. )         
  22. )
  23.        )
  24. set /a s=!s!-10*%%j
  25. )
  26. )
  27. set /a s=0
  28. )
  29. echo 总共有%n%个无重复数字的三位数!
  30. pause > nul
复制代码

TOP

【程序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

返回列表