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的斐波那契数列中偶数值的总和。
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())