斐波那契数列递归实现
斐波那契数列的说明
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,即第三个数及以后的数等于前两个数的和。
斐波那契数列的递归斐波那契表达式
F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
用python实现斐波那契数列的递归
代码:
def fib(x):
if x == 1:
return 0
if x == 2:
return 1
if x>2:
return fib(x-1)+fib(x-2)
print(fib(x))
测试:
测试的结果是fib(100)就已经要不止十分钟了,更不用说fib(1000),fib(10000),通过询问得知是因为在递归模式下,每一次的结果都需要从头运算,当导致fib(100)时的计算量就非常大了。于是用了一下循环来实现,就快多了,一分钟绰绰有余。