我写了一些代码,应该对 1 <= n <= 1000 求和 n^n。这是代码:
sum = 0
(1..1000).each do |n|
sum += n**n
puts "n = #{n}, sum = #{sum}"
end
出于某种原因,在 28 号之后输出为负数:
n = 29, sum = -2015400977700573523892329442490139437391867
知道为什么会这样吗?
我写了一些代码,应该对 1 <= n <= 1000 求和 n^n。这是代码:
sum = 0
(1..1000).each do |n|
sum += n**n
puts "n = #{n}, sum = #{sum}"
end
出于某种原因,在 28 号之后输出为负数:
n = 29, sum = -2015400977700573523892329442490139437391867
知道为什么会这样吗?
看起来这是 1.8.7 中的一个错误,已由补丁 358 修复:Ruby 1.8.7 中的指数返回错误答案
(power
计算的结果没有像这次提交之前numeric.c
那样声明,之后溢出行为似乎已经修复。)volatile