E002
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, ...
Find the sum of all the even-valued terms in the sequence which do not exceed four million.
找出不大于4,000,000的斐波那契數列中偶數值的總和。
def problem2():
a, b, c = 1, 2, 4*10**6
#掐頭
if 0==a%2:
sum = 2*a
elif 0==b%2:
sum = 2*b
else:
sum = 0
while b<=c:
a, b = b, a+b
sum += b
#去尾
if 0!=b%2:
sum -= b
if 0!=a%2:
sum -= a
return sum/2
if __name__=='__main__':
print str(problem2())