python – 使用Fibonacci程序求和偶数元素

我试图使用Python解决以下问题:

Fibonacci序列中的每个新术语都是通过添加前两个术语生成的.从1和2开始,前10个术语将是:
1,2,3,5,8,13,21,34,55,89 ……

通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和.

到目前为止,我已经能够生成Fibonacci元素,但在尝试对偶数元素求和时,我的代码似乎停滞不前.以下是代码:

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)

欢迎大家提出意见.

解决方法:

你有一个无限循环,因为你的while循环中n不会从零增加.另外,为什么不总和你的Fibonacci总数以及在同一个while循环中找到下一个Fibonacci值,如下所示:

x= 1
y=1
total = 0
while x <= 4000000:
    if x % 2 == 0:
        total += x
    x, y = y, x + y     
print (total)

输出:

4613732
上一篇:剑指offer8-Fibonacci数列


下一篇:python基础教程(二)