gpt4 book ai didi

python - 找出所有小于 200 万的斐波那契奇数之和

转载 作者:太空宇宙 更新时间:2023-11-03 23:53:40 25 4
gpt4 key购买 nike

你好,我一直在尝试做与欧拉项目问题 2 相反的事情(即所有小于 4,000,000 的偶数斐波那契数的总和)。我正在尝试打印所有小于 2,000,000 的奇数斐波那契数的总和,但我似乎无法得到正确答案。这是我到目前为止的代码

fib1 = 1
fib2 = 2
fibholder = 0 #place holder for the new value
Sum = 0
while fibholder<2000000:
fibholder = fib1 + fib2
if fibholder%2==1:
Sum+=fibholder
fib1 = fib2
fib2 = fibholder
print(Sum)

最佳答案

您将跳过序列中的前两个奇数并将第一个大于 2,000,000 的奇数包括在您的总和中,因为您计算下一个斐波那契数并在 while 循环检查该值是否小于之前递增您的总数你的极限。您可以通过初始化变量以包括序列的开头并将序列中下一个数字的计算移动到 while 循环的末尾来更正现有方法。

total = 1
fib1 = 0
fib2 = 1
fibholder = fib1 + fib2
while fibholder < 2000000:
if fibholder % 2:
total += fibholder
fib1 = fib2
fib2 = fibholder
fibholder = fib1 + fib2

print(total)
# 2435423

也就是说,如果您只生成奇数斐波那契数然后处理总和,逻辑可能更容易理解。

def odd_fibonacci(limit):
a, b = 0, 1
while a < limit:
if a % 2:
yield a

a, b = b, a + b

x = sum(n for n in odd_fibonacci(2000000))
print(x)
# 2435423

关于python - 找出所有小于 200 万的斐波那契奇数之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58550155/

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