斐波那契数列指的是这样的一组数列: 0 1 1 2 3 5 8............ 后一个元素是前两个元素的和,现在我们要输出斐波那契数列当中的第n个,这里给出两种方法,其中第一个方法效率较低,在数列很大的时候速度不如第二个速度快,代码如下:
def fib1(n):
if n==0:
return 0
elif n==1:
return 1
else:
return fib1(n-1)+fib1(n-2)
fib1(4)
Out[6]: 3 # 使用递归的思想 调用自身
k={0:0,1:1}
k[1]
Out[8]: 1
k={0:0,1:1,3:5}
k[3]
Out[11]: 5 # 返回的是键值
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
fib2(4)
Out[15]: 3