python解斐波那契数

 

1 1 2 3 5 8 13 … 这就是斐波那契数,直观理解就是:前两个数相加等于后一个数。

下面是一段求斐波那契数的python函数:

def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)

 

下面是一道练习题:求小于4000000的斐波那契数的偶数之和。

#!/usr/bin/env python
x=y=1
z=x+y
l=[]
while z<4000000:
l.append(z)
x=y+z
y=z+x
z=x+y
print sum(l)