【发布时间】:2020-01-30 19:27:51
【问题描述】:
斐波那契数列中的每个新项都是通过添加前两项来生成的。从 1 和 2 开始,前 10 个术语将是:
1、2、3、5、8、13、21、34、55、89、..
通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。 我就是这样做的,但是我得到了错误的值,我不知道为什么。
Sum=0
n=0
a=1
b=2
while a<=4e6 and b<=4e6:
if a%2==0:
Sum = Sum + a
n=a+b
a=b
b=n
if b%2==0:
sum=sum+b
print(Sum)
我的值是 1089154,这是不正确的。
【问题讨论】:
-
if b %2 == 0:缩进不正确,这使得它在while循环之外。你的代码也是这样吗? -
根据我在下面的回答,我发现您的问题是您的
while声明应该是:while a<=4e6: -
即当
b大于 4m 但a不是时,您希望它添加a到Sum -
@EJoshuaS-ReinstateMonica 如果将其放在循环中,则将偶数加到总和中两次。不好。看起来像是试图获得一个潜在的最后一个偶数,因此它属于循环之外。
-
@HeapOverflow 只是确保这是 OP 的意图。不确定他们是否期望它成为循环的一部分。
标签: python