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

正整数分解质因数(解法2)

【程序14】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p n=请输入整数
  4. set /p=%n%=<nul
  5. set /a k=2
  6. :main
  7. if !k!==%n% set /p=!k!<nul & goto :ex
  8. set /a c=!n! %% !k!
  9. if !c!==0 (
  10. set /p=!k!*<nul
  11. set /a n=!n!/!k!
  12. ) else (
  13. set /a k+=1
  14. )
  15. goto :main
  16. :ex
  17. pause>nul
复制代码

TOP

求其最大公约数和最小公倍数。(解法二)

【程序16】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
::作者提示:资料中未说明何为辗除法。根据C源码可知,辗除法(若a>b,让数a对数b求模得到c,再让数b对数c求模,得到d,再让c对d求模,一直循环直到最后的求模余数n=0)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=请输入一个整数
  4. set /p b=请输入另一个整数
  5. for /l %%i in (%a%,-1,1) do (
  6. set /a a1=!a!%%%%i
  7. set /a a2=!b!%%%%i
  8. if !a1!==0 if !a2!==0 set c=%%i&echo %%i& goto :t1
  9. )
  10. :t1
  11. pause>nul
  12. set /a cc=!a!*!b!/!c!
  13. echo !cc!
  14. pause>nul
复制代码

TOP

求其最大公约数和最小公倍数。(解法一)

【程序16】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
::作者提示:资料中未说明何为辗除法。根据C源码可知,辗除法(若a>b,让数a对数b求模得到c,再让数b对数c求模,得到d,再让c对d求模,一直循环直到最后的求模余数n=0)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p p1=请输入整数
  4. set /p p2=请输入另一个整数
  5. set /a a=p1
  6. set /a b=p2
  7. :be
  8. set /a c=!a! %% !b!
  9. set /a a=!b!
  10. set /a b=!c!
  11. if !c! neq 0 (goto :be) else echo !a!是最大公约数
  12. pause>nul
  13. echo 求最大公倍数
  14. set /a max=%p1%*%p2%/!a!
  15. echo %max%是最大公倍数
  16. pause>nul
复制代码

TOP

分解质因素(14题)

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p n=请输入一个整数
  4. set /a k=2
  5. for /l %%i in (2,1,%n%) do (
  6.    set /a d=!n!%%!k!
  7.    if !d!==0 (
  8.     echo !k!
  9.     set /a n=!n!/!k!
  10.    ) else (
  11.     set /a k=!k!+1
  12.     if !n!==!k! echo !k! & call :ex   
  13. )
  14. )
  15. goto :eof
  16. :ex
  17. pause>nul
复制代码

TOP

问每个月的兔子总数为多少?

【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
   后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
  1. :main
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. set /a a=1
  5. set /a b=1
  6. set /p n=请输入月份
  7. if "!n!" gtr "2" (
  8. for /l %%i in (3,1,!n!) do (
  9. set /a c=!a!+!b!
  10. set /a b=!a!
  11. set /a a=!c!)) else ( set /a c=1)
  12. echo !c!
  13. goto :main
  14. pause>nul
复制代码

[ 本帖最后由 irresolute 于 2009-2-22 22:37 编辑 ]

TOP

判断101-200之间有多少个素数,并输出所有素数。

【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
      则表明此数不是素数,反之是素数。


  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (101,2 200) do (
  4.   set tag=
  5.   set /a c=%%i/2
  6.   for /l %%j in (2,1,!c!) do (
  7.     set /a b=%%i %% %%j
  8.     if !b!==0 set tag=1)
  9.   if not defined tag echo %%i &set /a n+=1
  10. )
  11. echo 共!n!个素数
  12. pause>nul
复制代码

[ 本帖最后由 irresolute 于 2009-2-22 22:37 编辑 ]

TOP

程序1

【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1,1,4) do (
  4.  for /l %%j in (1,1,4) do (
  5.     for /l %%k in (1,1,4) do (
  6.      set /a dd=%%i%%j%%k
  7.      if %%i neq %%j (
  8.         if %%i neq %%k (
  9.            if %%j neq %%k set /a n+=1 &echo !dd!))
  10. )))
  11. echo 总共!n!个
  12. pause>nul
复制代码

[ 本帖最后由 irresolute 于 2009-2-22 22:46 编辑 ]

TOP

第一题

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1,1,4) do (
  4. for /l %%j in (1,1,4) do (
  5.    for /l %%k in (1,1,4) do (
  6.    set /a dd=%%i%%j%%k
  7.    if "!dd:~0,1!" neq "!dd:~1,1!" if "!dd:~0,1!" neq "!dd:~2,1!" if "!
  8. dd:~2,1!" neq "!dd:~1,1!" set /a n+=1 &echo !dd!
  9. )))
  10. echo 总共!n!个
  11. pause>nul
复制代码

TOP

第一题

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1,1,4) do (
  4. for /l %%j in (1,1,4) do (
  5.    for /l %%k in (1,1,4) do (
  6.    set dd=%%i%%j%%k
  7.    if %%i neq %%j if %%j neq %%k if %%i neq %%k set /a n+=1 &echo !dd!
  8. )))
  9. echo 总共!n!个
  10. pause>nul
复制代码

TOP

晚上我也做做

晚上我也做做

TOP

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位

::有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
:echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 4) do (
   for /l %%j in (1 1 4)  do (
      for /l %%k in (1 1 4) do (
         if %%i neq %%j (
           if %%k neq %%i (
             if %%k neq %%j (
               echo %%i%%j%%k
               set /a b=!b!+1
             )
           )  
         )
      )
   )
)
echo 总数为!b!个
pause

TOP

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三

::有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 4) do (
   for /l %%j in (1 1 4)  do (
     if  %%i neq %%j (
       for /l %%k in (1 1 4) do (
         if  %%k neq %%i (
           if %%k neq %%j (
            echo %%i%%j%%k
            set /a b=!b!+1
           )
         )  
       )
     )
   )
)
echo 总数为!b!个
pause

TOP

有1、2、3、4个数字,能组成多少个互不相同

::有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
@echo off
setlocal enabledelayedexpansion
set "str=1 2 3 4"
for %%i in (!str!) do (
   set "var1=!str:%%i=!"
   for %%j in (!var1!) do (
     set "var2=!var1:%%j=!"
     for %%k in (!var2!) do (
         set /a b=!b!+1
        set /p =%%i%%j%%k  <nul  
)   
)
)
echo  总共有!b!种无重复数字的三位数
pause>nul

TOP

回复 6楼 的帖子

6楼的程序视乎有错误,运行结果是:
‘ate2Day’不是内部或外部命令,是不可运行的程序或批处理文件

TOP

99乘法表 搞了好长的时间
@echo off
setlocal enabledelayedexpansion
for /l %%a in (1 1 9) do (for /l %%b in (1 1 %%a) do (set/a res=%%a*%%b&echo %%a*%%b=!res!))
pause

TOP

返回列表