Я пытаюсь решить проблему Фибоначчи и споткнуться о проблемах округления.Ruby - Sqrt на очень большом Целочисленная причина Проблемы округления
Если i = 8670007398507948658051921
, то fib1 = 19386725908489880000000000.0
.
Мой код ниже - спасибо за любую помощь.
def is_fibonacci?(i)
fib1 = Math.sqrt(5*(i**2)+4)
fib2 = Math.sqrt(5*(i**2)-4)
fib1 == fib1.round || fib2 == fib2.round ? true : false
end
Можете ли вы стать более понятным, что происходит? В частности, 1. Какую команду вы используете с помощью этой функции? 2. Каков результат? и 3. Что вы ожидали от результата и почему? –