【发布时间】:2013-03-20 16:25:56
【问题描述】:
我正在尝试解决斐波那契问题,但遇到了舍入问题。
如果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. 你期望结果是什么,为什么?
标签: ruby rounding-error math.sqrt