我正在尝试使用 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/

10-12 22:53