我正在尝试使用 Python 解决以下问题:
斐波那契数列中的每个新项都是通过将前两项相加而生成的。从 1 和 2 开始,前 10 项将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
通过考虑 Fibonacci 数列中值不超过 400 万的项,找出偶数项的总和。
到目前为止,我已经能够生成斐波那契元素,但是在尝试对偶数元素求和时,我的代码似乎停滞了。这是下面的代码:
def fib(n):
if n==0:
return 0
elif n==1:
return 1
if n>1:
return fib(n-1)+fib(n-2)
n=0
total=0
while fib(n)<=4000000:
if fib(n)%2==0:
total+=fib(n)
print(total)
欢迎大家提出意见。
最佳答案
您有一个无限循环,因为 n
在您的 while
循环中从未从零开始递增。此外,为什么不在同一个 while
循环中对您的 Fibonacci 总数求和并找到下一个 Fibonacci 值,如下所示:
x= 1
y=1
total = 0
while x <= 4000000:
if x % 2 == 0:
total += x
x, y = y, x + y
print (total)
输出:
4613732
关于python - 使用斐波那契程序对偶数元素求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29394874/