gpt4 book ai didi

ruby - 斐波那契偶数之和

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:06 24 4
gpt4 key购买 nike

我目前正在 Euler 项目网站上从事小型 ruby​​ 项目。我的任务是计算小于 4 百万的斐波那契数。不幸的是,我的代码中有一个小错误,因为当我更改限制 e.i.到 100,它打印 188 而不是 44。令人惊讶的是这个程序给出了正确的答案,但我真的不知道我的代码在什么方面是错误的。

a=[]; a[0]=1; a[1]=1;
i = 1
while a[-1] < 608
a[i+1]=(a[i] + a[i-1])
i +=1
end
x = 0
a.each do |num|
if num % 2 == 0
x += num
end
end
print "The sum of even Fibonacci number is: #{x}"

最佳答案

问题来自第二次迭代。当其中一个数字超过限制时(即当最后一个数字 > 100 时),您将停止生成斐波那契数列。

原来在生成步骤之后,数组是[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144],这说明你的错误结果 188 = 144+44。

因此,您的代码仅在生成的最后一个元素为奇数时才有效,这就是欧拉问题测试中的情况。为了纠正这个问题,将你的第二次迭代从 a.each do ... end 更改为 a[0...-1].each do ... end为了遍历除最后一个元素之外的数组。

关于ruby - 斐波那契偶数之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37779206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com