Board logo

标题: [数值计算]1-99内整数开根 [打印本页]

作者: 523066680     时间: 2008-9-20 17:25    标题: [数值计算]1-99内整数开根

也在bathome发布 http://bbs.bathome.cn/viewthread.php?tid=1791&page=1&extra=page%3D1 如果有小数则保留3位小数。
@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
[ Last edited by 523066680 on 2008-9-21 at 07:29 AM ]

作者: lxmxn     时间: 2008-9-21 09:08
不错,已经收藏到置顶的 [推荐]批处理室经典帖子分类索引 中了。

作者: BC     时间: 2008-9-21 09:12
占个位置...
这次的效率快很多了

作者: 523066680     时间: 2008-9-21 09:18
原理:一位位数进行对比 比如输入2 0*0=0 1*1=1 2*2=4 4>2 所以第一位数取1 然后1.1*1.1 1.2*1.2 1.3*1.3…… 1.4*1.4 1.5*1.5 = 2.25 >2 所以取1.4 以此类推 大家疑问了 批处理没小数啊 那就用整数计算 算出来后加个点给它

作者: 523066680     时间: 2008-9-21 09:25
感谢各位的支持!我爱cn-dos!