x
通过取整数平方根s
(即使得的最大整数s * s ≤ x
)然后计算,可以找到任意数量的平方根的近似值s + (x - s^2) / (2 * s)
。让我们称之为近似值S(x)
。(注意:这等效于应用牛顿-拉夫森方法的一个步骤)。
尽管这确实有些古怪,但S(n ^ 2-1-)始终为√(n ^ 2),但通常它是非常准确的。在某些较大的情况下,这可以具有> 99.99%的精度。
输入输出
您将采用任何方便的格式输入一个数字。
例子
格式:输入->输出
2 -> 1.50
5 -> 2.25
15 -> 4.00
19 -> 4.37 // actually 4.37 + 1/200
27 -> 5.20
39 -> 6.25
47 -> 6.91 // actually 6.91 + 1/300
57 -> 7.57 // actually 7.57 + 1/700
2612 -> 51.10 // actually 51.10 + 2/255
643545345 -> 25368.19 // actually 25,368.19 + 250,000,000/45,113,102,859
35235234236 -> 187710.50 // actually 187,710.50 + 500,000,000/77,374,278,481
技术指标
您的输出必须四舍五入到至少最接近的百分位数(即,如果答案为47.2851,则您可以输出47.29)
如果答案是整数,则输出不必带有零和小数点(例如125.00也可以输出为125和125.0)
您不必支持1以下的任何数字。
您不必支持非整数输入。(即1.52等...)
规则
禁止使用标准漏洞。
这是一个代码高尔夫球,因此最短答案以字节为单位。
s + (x - s^2) / (2 * s) == (x + s^2) / (2 * s)