yet*_*ker 6 python sum fibonacci
#!/usr/bin/python2
"""
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
"""
odd, even = 0,1
total = 0
while True:
odd = odd + even #Odd
even = odd + even #Even
if even < 4000000:
total += even
else:
break
print total
Run Code Online (Sandbox Code Playgroud)
我的算法:
even大于4e6,我会从无限循环中断开.我已经尝试了很多,但我的回答总是错误的.谷歌说答案应该是,4613732但我似乎总是得到5702886
感谢您的支持.
Rob*_*ers 20
基本上你在这里做的是添加斐波纳契数列的每一个元素,而问题只是求和偶数元素.
你应该做的只是迭代4000000以下的所有斐波纳契值并做一个if value % 2 == 0: total += value.的%是上除法运算余数,如果除以2时余数等于0,则数量是偶数.
例如:
prev, cur = 0, 1
total = 0
while True:
prev, cur = cur, prev + cur
if cur >= 4000000:
break
if cur % 2 == 0:
total += cur
print(total)
Run Code Online (Sandbox Code Playgroud)