解决方案可能相当简单,但我就是想不出来。这里是代码,它是一个简单的斐波那契数列生成器。目标是将所有小于4,000,000的偶数斐波那契数相加。
我的方法是首先生成所有小于4,000,000的斐波那契数,然后: a) 生成一个新列表("even"),其中包含偶数(这个方法很好用) b) 从列表"all"中删除奇数
然而,在后一种情况下,输出结果是这样的(我不明白原因): [2, 5, 8, 21, 34, 89, 144, 377, 610, 1597, 2584, 6765, 10946, 28657, 46368, 121393, 196418, 514229, 832040, 2178309, 3524578]
非常感谢您的帮助!
我的方法是首先生成所有小于4,000,000的斐波那契数,然后: a) 生成一个新列表("even"),其中包含偶数(这个方法很好用) b) 从列表"all"中删除奇数
然而,在后一种情况下,输出结果是这样的(我不明白原因): [2, 5, 8, 21, 34, 89, 144, 377, 610, 1597, 2584, 6765, 10946, 28657, 46368, 121393, 196418, 514229, 832040, 2178309, 3524578]
非常感谢您的帮助!
all = []
even = []
def fibonacci():
a, b = 1, 2
while a < 4000000:
all.append(a)
a, b = b, a + b
print all
##Putting all the even fibonacci numbers in a different list and summing them up works fine
# for i in all:
# if i % 2 == 0:
# even.append(i)
# print even
# print sum(even)
# But for some strange reason I can't figure out how to remove the odd numbers from the list
for i in all:
if i % 2 != 0:
all.remove(i)
print all
print sum(all)
fibonacci()