所以我在ruby中编写了一个计算第n个斐波纳契数的基本程序:
def fib(n)
return 0 if n == 0
nums = [0, 1]
for i in 2..n do
nums.push(nums[i-1] + nums[i-2])
end
return nums[n]
end
现在我可以很容易地用基本的方式调用它,无论我喜欢什么数字,f.x。 200,000。
所以我只是在徘徊ruby如何设法做到这一点?它如何能够计算如此庞大的数字并给出正确的结果呢?
答案 0 :(得分:3)
Ruby正在使用Bignum来获取大数字以避免溢出。这是一篇很好的文章,解释了这个过程。 http://patshaughnessy.net/2014/1/9/how-big-is-a-bignum