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

以下是我写的几个程序

**********************************************************************************
【程序1】
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
**********************************************************************************
  1. @echo off
  2. for %%i in (1 2 3 4) do (
  3.    for %%j in (1 2 3 4) do (
  4.       if %%j neq %%i (
  5.          for %%k in (1 2 3 4) do (
  6.    if %%k neq %%i (
  7.       if %%k neq %%j (echo %%i%%j%%k)
  8. )
  9.                      )
  10.                )
  11.         )
  12. )
  13. pause>nul
复制代码

**********************************************************************************
【程序2】
输入某年某月某日,判断这一天是这一年的第几天?  
**********************************************************************************
  1. @echo off
  2. set days=0&setlocal enabledelayedexpansion
  3. set /p date=请输入日期(日期格式 xxxx.xx.xx):
  4. for /f "tokens=1,2,3 delims=./ " %%i in ("%date%") do (
  5.      set "year=%%i"&set "month=%%j"&set "day=%%k"
  6.      set "run=%%j"
  7.   )
  8. for %%l in (0 31 28 31 30 31 30 31 31 30 31 30 31) do (
  9.     set /a days=days+%%l
  10.     set /a month=month-1
  11.     if !month! equ 0 (goto a)
  12. )
  13. :a
  14. set /a days=%day%+!days!
  15. if %run% equ 1 (goto b)
  16. set /a b=year%%400
  17. set /a c=year%%4
  18. set /a d=year%%100
  19. if %b% equ 0 (set /a days=1+days&goto b)
  20. if %c% equ 0 (
  21.    if %d% neq 0 (
  22.       set /a days=1+days
  23.     )
  24. )
  25. :b
  26. echo %date% 是 %year% 年的第 %days% 天
  27. pause>nul
复制代码

**********************************************************************************
【程序3】
输出9*9口诀。
**********************************************************************************

  1. @echo off&set n=0
  2. for /l %%i in (1 1 9) do (
  3.     set a=%%i
  4. for /l %%j in (1 1 9) do (
  5.     set b=%%j
  6.     call :a
  7.    )
  8.     echo.
  9. )
  10. pause>nul
  11. :a
  12. if %b% gtr %a% (goto :eof)
  13. set /a num=a*b
  14. set /p "=%a%x%b% = %num% " <nul
  15. set /a n=n+1
  16. goto :eof
复制代码


**********************************************************************************
【程序4】
输出101-200之间所有的素数。
**********************************************************************************


  1. @echo off
  2. for /l %%i in (101 1 200) do (
  3.     set a=%%i &set n=0
  4.     call :calc
  5. )
  6. pause>nul
  7. :calc
  8. for /l %%j in (2 1 15) do (
  9.     set b=%%j
  10.     call :op
  11.    )
  12. if %n% equ 0 (echo %a%)
  13. goto :eof
  14. :op
  15. set /a yu=a%%b
  16. if %yu% equ 0 (set n=1)
  17. goto :eof
复制代码



**********************************************************************************
【程序5】
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3
**********************************************************************************
  1. @echo off
  2. for /l %%i in (1 1 9) do (
  3.         set a=%%i
  4.   for /l %%j in (0 1 9) do (
  5.         set b=%%j
  6.     for /l %%k in (0 1 9) do (
  7.         set c=%%k
  8.         set num=%%i%%j%%k
  9.         call :calc
  10.         )
  11.     )
  12. )
  13. pause>nul
  14. :calc
  15. set /a sum=a*a*a+b*b*b+c*c*c
  16. if %num% equ %sum% (echo %num%)
  17. goto :eof
复制代码


**********************************************************************************
【程序6】
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。  
**********************************************************************************

  1. @echo off
  2. set n=1
  3. set /p num=请输入一个数字:
  4. set /p "=%num%=" <nul
  5. :start
  6. for /l %%i in (2 1 %num%) do (
  7.    set a=%%i
  8.    call :sp
  9. )
  10. pause>nul
  11. :sp
  12. set /a yu=num%%a
  13. set /a sh=num/a
  14. if %yu% equ 0 (
  15.    set /a num=sh
  16.    if %n% neq 1 (set /p "=*" <nul)
  17.    set /p "=%a%" <nul & set n=0
  18.    goto start
  19. )
复制代码




**********************************************************************************
【程序7】
输入两个正整数m和n,求其最大公约数和最小公倍数。
**********************************************************************************
  1. @echo off
  2. set /p n=请输入数字 n=
  3. set /p m=请输入数字 m=
  4. if %m% gtr %n% (
  5.   set /a min=n & set /a max=m
  6.       ) else (
  7.   set /a min=m & set /a max=n
  8.   )
  9. for /l %%i in (%min% -1 1) do (
  10.    set a=%%i
  11.    call :sp
  12. )
  13. :an
  14. echo 最大公约数是 %a%
  15. echo 最小公倍数是 %b%
  16. pause>nul &exit
  17. :sp
  18. set /a y1=n%%a
  19. set /a y2=m%%a
  20. set /a s=max%%min
  21. if %s% equ 0 (
  22.     set /a b=max ) else (
  23.       set /a b=max*min
  24.       )
  25. if %y1% equ 0 (
  26.   if %y2% equ 0 (
  27.     if %y1% equ %y2% (goto an)
  28.     )
  29. )
复制代码


[ 本帖最后由 wangshuping42 于 2009-9-30 14:36 编辑 ]

TOP

返回列表