如果答案有小数。则保留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
复制代码 如有缺点大家可以改的也帮忙改改 主要也是书上来的思路 所以,有缺点大家帮忙改哈 |