Натхненний цим відео від tecmath .
Наближення квадратного кореня будь-якого числа 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)