标题: [数值计算] 批处理开平方根1-99以内的数 [打印本页]
作者: 523066680 时间: 2008-9-10 15:53 标题: 批处理开平方根1-99以内的数
如果答案有小数。则保留5位有效数字
思路来自http://www.bathome.net/thread-1760-1-1.html- @echo off &setlocal enabledelayedexpansion
- :action
- set /p input="(1-9):"
- set /a a=0,n=0
- :a
- set /a a+=1,a1=0
- :a1
- set /a a1+=1,test=(n*10+a1)*(n*10+a1)
- if %test% equ %input% (echo %a1% &pause &goto :end)
- if %test:~0,1% lss %input% (goto :a1)
- set /a n=n*10+a1-1
- if %a% lss 5 goto :a
- echo %n:~0,1%.%n:~1%
- pause>nul
- :end
- goto :action
复制代码
------------------------------------------------1-99的---------若有小数保留四位---------------------------- @echo off
- :action
- set /p input="(1-99):"
- if "%input%"=="" goto :action
- set /a a=0,n=0
- :a
- set /a a+=1,a1=0
- :a1
- set /a a1+=1,test=(n*10+a1)*(n*10+a1)
- if %test% equ %input% (echo %a1% &pause &goto :end)
- if %test% lss %input% (goto :a1)
- set /a n=n*10+a1-1,input*=100
- if %a% lss 4 goto :a
- echo %n:~0,1%.%n:~1%
- pause>nul
- :end
- echo,&set input=
- goto :action
复制代码
如有缺点大家可以改的也帮忙改改 主要也是书上来的思路 所以,有缺点大家帮忙改哈
作者: qq641255849 时间: 2008-9-10 17:41
占个沙发...
不错哦,但好像效率有点低...
作者: 523066680 时间: 2008-9-20 16:49 标题: 回复 2楼 的帖子
关于效率……
我也是在书上看的……是自己看到的比较好的方案了吧……
还有 这里虽然是原创代码区,但是希望大家也有讨论区的热情。
有意见要多提哈……
怎么没人发现上面的setlocal enabledelayedexpansion是多余的?
作者: pusofalse 时间: 2008-9-20 17:07 标题: 回复 3楼 的帖子
要说多余的话,应该是enabledelayedexpansion多余了,保留setlocal,在最后用相应的endlocal清空变量。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |