展开全部
定义:斐波那契数列2113(Fibonacci sequence),又称黄金分割数列,指的是5261这样一个数列:0、41021、1、2、3、5、8、13、21、34、……在数学上1653,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
方法一:用递归方法求出每一项def fib1(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib1(n - 1) + fib1(n - 2)
res = []
for i in range(21):
res.append(fib1(i))
print res
print sum(res)
方法二:上面的方法,有很多重复计算,非常消耗性能,下面改进下:known = {0: 0, 1: 1}
def fib2(n):
if n in known:
return known[n]
res = fib2(n - 1) + fib2(n - 2)
known[n] = res
return res
res = []
for i in range(21):
res.append(fib2(i))
print res
print sum(res)