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

回复 1楼 的帖子

  1. @echo off&setlocal enabledelayedexpansion
  2. (set/p=初始化中, 请稍等...<nul)&(call :initRoots)
  3. echo.&echo cmd 下最大正整数 2147483647 (2^^31-1) 的各次方根整数部分(次数2--30):
  4. (for /l %%a in (2,1,30) do set /p=!root%%a!,<nul) & (echo  )
  5. :loop
  6. set/p i=请输入正整数:
  7. if %i% lss 1 goto loop
  8. if %i% equ 1 echo 1的任意次方=1&goto loop
  9. set /a exp=1
  10. for /l %%a in (2,1,30) do if %i% leq !root%%a! set /a exp+=1
  11. echo %i%的%exp%次方接近于cmd最大值.
  12. goto loop
  13. :initRoots 初始化 cmd 下最大正整数 2147483647 (2^31-1) 的各次方根(次数2--30)
  14. for /l %%a in (2,1,30) do (call :searchRoot root%%a 2 50000 %%a)& set /p=^>^><nul
  15. exit /b
  16. :checkOverflow overflow x y rem 检测 x^y 是否溢出
  17. (set tc=%2)&(set te=%3)
  18. :next
  19. if !te! gtr 1 set /a "t0=tc,tc*=%2,t1=tc/ %2,te-=1"
  20. if !t0! neq !t1! (set %1=yes)&(exit /b)
  21. if !t0! geq !tc! (set %1=yes)&(exit /b)
  22. if !tc! leq 0 (set %1=yes)&(exit /b) else if !te! leq 1 (set %1=no)&(exit /b) else goto next
  23. exit /b
  24. :searchRoot root lower upper time
  25. set /a "ll=%2,uu=%3"
  26. :schNext
  27. set /a t=(ll+uu)/2
  28. if !t! equ !ll! set /a "%1=t" & exit /b
  29. call :checkOverflow ofl !t! %4
  30. if /i "!ofl!"=="yes" (set /a "uu=t") else (set /a "ll=t")
  31. goto schNext
  32. exit /b
复制代码

[ 本帖最后由 neorobin 于 2009-12-19 03:42 编辑 ]
1

评分人数

TOP

正算:乘
反算:除
***共同提高***

TOP

正算和反算法分别指什么?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表