[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. :begin
  3. cls&setlocal enabledelayedexpansion
  4. set/p s=please input number:
  5. set/a n=1
  6. :loop
  7. set/a n+=1,x=2*s-n*n-n,y=2*n,mod=x%%y,a=x/y,m=(n*n+n)/2
  8. if %mod% equ 0 (
  9. for /l %%i in (1,1,%n%) do (
  10. set/a a+=1&set "str=!str!!a!+"
  11. )
  12. echo %s%^=!str:~,-1!&set "str="
  13. )
  14. if %m% gtr %s% (pause&endlocal&goto begin) else goto loop
复制代码
2

评分人数

TOP

这么久了
没有人有效率更高的思路吗?我再想想
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p p=输入一个数字(大于0且小于2^32):
  3. set a=0
  4. :begin
  5. set ok=
  6. set /a a+=1
  7. if %a% gtr %p% goto over
  8. set b=%a%
  9. set d=%a%
  10. :do
  11. set /a b=b+1
  12. set /a d=d+b
  13. if %d% lss %p% goto :do
  14. if %d% equ %p%  (
  15. for /l %%i in (%a% 1 %b% ) do set ok=!ok!+%%i
  16. echo %p%=!ok:~1!
  17. echo.&goto begin
  18. )
  19. if %d% gtr %p% goto begin
  20. :over
  21. echo 完成了&pause>nul
复制代码
只有这个逐个算下去的思路  效率实在太低了
1

评分人数

o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

又一道挑战效率的题目,。

回复2楼
n (n<2^32)
表示n小于 2的32次方。即不超过cmd的最大数值范围。

[ 本帖最后由 随风 于 2009-8-29 12:27 编辑 ]
技术问题请到论坛发帖求助!

TOP

效率很低:
  1. @echo off
  2. :bgn
  3. Setlocal Enabledelayedexpansion
  4. set /p in=请输入:
  5. if not defined in goto :eof
  6. echo.
  7. set /a n=in-1,m=0
  8. :agn
  9. set /a m+=1,ans=0&set "ans_str="
  10. for /l %%a in (%m% 1 %n%) do (
  11.    set /a ans+=%%a
  12.    set "ans_str=!ans_str!%%a+"
  13.    if !ans! gtr %in% (
  14.       goto :agn
  15.    ) else (
  16.       if "!ans!"=="%in%" (
  17.          set ans_str=!ans_str:~,-1!
  18.          echo.!in!=!ans_str!&echo.
  19.          goto :agn
  20.       )
  21.    )
  22. )
  23. endlocal
  24. goto :bgn
复制代码
1

评分人数

    • pusofalse: 感谢参与,并学习代码。PB + 6

TOP

n (n<2^32)
" ^ "是什么意思

TOP

返回列表