Python通过递归实现斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
通过以上数列不难看出,其规律为F(N+1)=F(N-1)+F(N)。那么此时我们想计算出第20位,让我们通过Python递归来实现一下。
# 斐波那契数列 '''0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597, 2584,4181,6765,10946,17711''' #找出第20位 def find(position=20,itertime=3,lastvalue=0,nowvalue=1): ''' :param position: 与迭代次数相关,寻找第20位数值 :param itertime:因为导入了前两个值,故从第三位开始算,所以itertime=3, :param lastvalue: F(N-1) :param nowvalue: F(N) :return: 当计算到第20位时返回结果 ''' lastvalue,nowvalue=nowvalue,lastvalue+nowvalue if itertime==position: return nowvalue itertime+=1 return find(itertime=itertime,lastvalue=lastvalue,nowvalue=nowvalue) print(f'第20位是:{find()}')
这就是Python递归实现斐波那契数列。为什么要用递归来计算呢,可点击可跳转我的另一篇博文详解Python递归算法详解,代码实现。