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!