T2 Even Fibonacci numbers

T2 Even Fibonacci numbers

Solution

当然可以直接暴力

但是可以通过观察发现,斐波那契数列是这样的:

奇,偶,奇,奇,偶……

可以发现偶数的斐波那契数列总是隔两个奇数出现一次

那么假如知道了前两个偶斐波那契数\(x,y\),那么下一个就是x+4y,这个就不用多说了吧。。。

于是就可以写出下面这样的代码

T2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import time

start = time.time()
ans = 0
x = 2
y = 8
ans = ans + x + y
while (x + 4 * y <= 4000000):
t = y
y = x + 4 * y
x = t
ans = ans + y
print ans
print "Time:", time.time() - start