红宝石如何计算大数的总和

时间:2015-11-04 23:10:00

标签: ruby

所以我在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如何设法做到这一点?它如何能够计算如此庞大的数字并给出正确的结果呢?

1 个答案:

答案 0 :(得分:3)

Ruby正在使用Bignum来获取大数字以避免溢出。这是一篇很好的文章,解释了这个过程。 http://patshaughnessy.net/2014/1/9/how-big-is-a-bignum