无数年前写的东西,算法是(n/x+x)/2,精度最高0.0001,支持1~999999999- @echo off
- setlocal enabledelayedexpansion
- ::Made By Defanive
- :start
- cls
- echo 由于CMD位数计算的限制,精确度最高0.0001
- echo 越大的数字数字精确度越来越低
- echo Made By Defanive
- echo.
- set/p type=输入一个整数:
- if %type% gtr 999999999 goto start
- if %type% lss 1 goto start
- set/a xn=type
- set/a times=1
- if %type% geq 99 set/a times=2
- if %type% geq 9999 set/a times=3
- if %type% geq 999999 set/a times=4
- if %type% geq 99999999 set/a times=5
- for /l %%a in (1,1,4) do (
- set/a yn=!xn!*100
- set/a zn=!yn!/100
- if not !yn! lss 0 (
- if !xn!==!zn! (
- set/a xn=!yn!
- )
- )
- )
- set/a sn=xn
- set sqn=1
- for /l %%a in (1,1,20) do (
- set/a sqn=sn/sqn+sqn
- set/a sqn=sqn/2
- )
- echo.
- echo √%type% ≈ !sqn:~0,%times%!.!sqn:~%times%!
- pause>nul
- goto start
复制代码
[ 本帖最后由 defanive 于 2009-4-26 12:28 编辑 ] |