[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
扩展一下
任意一个n能被4整除的等差数列都可以平分
比如6,7,8,9,10,11,12,13
有兴趣的可以出一个通用解法

TOP

方法是 将表上所有数字之和除2  算出一半数字之和
再从1开始加6个数.如果和等于表上一半数字之和 就输出这6个数
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 12) do (
  3.     set /a a+=%%i
  4. )
  5. set /a n=%a%/2
  6. :lp
  7. for /l %%j in (1 1 6) do (
  8.     set /a b+=1
  9.     set c=!b!
  10.     for /l %%k in (1 1 6) do (
  11.         set /a c+=1
  12.         set /a d+=!c!
  13.         if !d! equ %n% (goto ak)
  14.     )
  15. )
  16. :ak
  17. set /a num=!b!+1
  18. echo. 应切分为:
  19. for /l %%l in (1 1 6) do (
  20. set /a num+=1
  21. echo !num!
  22. )
  23. pause
复制代码
  1. ::这是随机取值版本.比较费时间
  2. @echo off&setlocal enabledelayedexpansion
  3. set/a a=(1+12)*12/4/3
  4. :lp
  5. set/a b=%random%%%12+1
  6. set/a c=%random%%%12+1
  7. set/a d=%b%+%c%
  8. set/a e=%b%-%c%
  9. if %d% equ %a% (
  10.    if %e% equ 5 (goto end) else goto lp
  11. ) else goto lp
  12. :end
  13. echo.应切分为:
  14. set/p=!c!<nul
  15. for /l %%i in (1 1 5) do (
  16.     set/a f=%c%+%%i
  17.     set/p=!f!<nul
  18. )
  19. pause
复制代码
  1. ::这个是取差值版本
  2. @echo off&setlocal enabledelayedexpansion
  3. set/a a=(1+12)*12/4/3
  4. :lp
  5. for /l %%i in (1 1 12) do (
  6.     set/a b=%%i+5
  7.     set/a c=!b!+%%i
  8.     if !c! equ !a! (goto end)
  9. )
  10. :end
  11. echo.应切分为:
  12. echo !b!
  13. for /l %%j in (1 1 5) do (
  14.     set/a b-=1
  15.     echo !b!
  16. )
  17. pause
复制代码

[ 本帖最后由 a590687 于 2010-1-9 14:47 编辑 ]
1

评分人数

TOP

我再来一个:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str= #1 #2 #3 #4 #5 #6 #7 #8 #9 10 11 12 #1 #2 #3 #4 #5 #6 #7 #8 #9"
  3. for /l %%a in (1,1,7) do (
  4.     set /a "num=(2*%%a+5)*3"
  5.     if !num! equ 39 (
  6.        set /a "a=(%%a-1)*3",b="(%%a+5)*3"
  7.        call,set "a=%%str:~!a!,18%%"&echo !a:#=!
  8.        call,set "b=%%str:~!b!,18%%"&echo !b:#=!
  9.     )
  10. )
  11. pause>nul
复制代码

[ 本帖最后由 batman 于 2010-1-9 12:25 编辑 ]
***共同提高***

TOP

返回列表