python中使用递归实现斐波那契数列

python中使用递归实现斐波那契数列python中使用递归实现斐波那契数列python中使用递归实现斐波那契数列先来了解一下斐波那契数列(Fibonaccisequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(LeonardodaFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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≥2,n∈N)在现代物理、

大家好,又见面了,我是你们的朋友全栈君。

python中使用递归实现斐波那契数列

python中使用递归实现斐波那契数列

先来了解一下

斐波那契数列(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 ≥ 2,n ∈ N)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。*

使用递归返回前n项的斐波那契数列:

func_1(n-2)+func_1(n-1)此代码为本节代码的主要代码

def func_1(n):
if n == 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return func_1(n-2)+func_1(n-1)
假设n取4
return func_1(2)+func_1(3)
func_1(2)带入函数则返回1,func_1(3)带入函数则返回 func_1(3-2)+func_1(3-1)即为 func_1(1)+func_1(2) ,带入函数为1+1 所以得出结论func_1(4) =func_1(2)+func_1(3)=func_1(2)+func_1(1)+func_1(2)=3


刚才的递推函数只能返回第n各值,要想返回前n项值,得在外围建个函数将得出的值一一添加进去

代码实现:
def func(a):
def func_1(n):
if n == 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return func_1(n-2)+func_1(n-1)
list_1 = []
for i in range(a):
list_1.append(func_1(i))
return list_1

print(func(20))
在这里插入图片描述

祝大家Python学习顺利!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148834.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • spring的事务隔离级别「建议收藏」

    spring的事务隔离级别「建议收藏」spring的事务隔离级别

    2022年4月22日
  • nfc怎么复制门禁卡,有什么操作教程吗「建议收藏」

    nfc怎么复制门禁卡,有什么操作教程吗「建议收藏」现在居住小区很多都有门禁,也是为了提升一个更安全的居住环境,在忙碌的生活中,人们有时会忘记带手机、钥匙、门禁卡等,像忘记门禁卡,会导致进不了小区,这时候该怎么办呢,接下来由换换回收小编分享nfc怎么复制门禁卡的操作教程。nfc是一些安卓手机上才有的功能它不仅能充值公交卡还可以充当门禁卡使用,方法很简单支持NFC的手机基本都可以门禁卡,但是需要相关APP的适配才可以,比如华为小米都有相关模拟门禁的APP,小米钱包有模拟门禁卡功能,前提是手机自带nfc射频芯片,但是目前为了安全起见,使用该功能…

    2022年5月3日
  • pycharm安装后运行不了_pycharm暂停程序

    pycharm安装后运行不了_pycharm暂停程序原博客链接:http://blog.csdn.net/qingyuanluofeng/article/details/46501427问题:pycharm安装后不能执行python脚本。我的是执行后老是报错,但是之前在cpython中都是可以的。于是上网查询解决方法原因:pycharm没有设置解析器/解释器设置错误(我的就是因为这个之前设置错了,位置也是错的,结果导致程序不能正常运行出

    2022年8月28日
  • 【linux】linux 命令:查看 linux 服务器的 jdk、Tomcat、mysql、maven 版本号「建议收藏」

    【linux】linux 命令:查看 linux 服务器的 jdk、Tomcat、mysql、maven 版本号「建议收藏」目录一、jdk二、Tomcat三、mysql四、maven一、jdk输入命令,可以看到jdk版本是:1.8.0_181:cd~java-version二、Tomcat(1)查看Tomcat的安装目录命令是:sudofind/-name*tomcat*(2)切换到Tomcat安装目录的bin目录下:cd/usr/…

    2022年8月21日
  • CPU流水线技术演进「建议收藏」

    CPU流水线技术演进「建议收藏」一.三级线性流水线每个流水级的结构是:逻辑电路+寄存器我们可以将流水线往下细分,使得各个流水级足够小(CPU执行时间少),就可以通过提高系统时钟频率来提高CPU的处理速度。二.多级线性流水线(这里以5级为例)注意:我们把5级以上的流水线称为超流水线结构。三.muti-多级线性流水线(这里以5级为例)四.多级非线性流水线(乱序执行部件)五.超线程处理器多级非线性流水线(虚拟处理器共用乱序执行部件)拥有超线程的处理器将两个虚拟的处理器暴露给共享的乱..

    2022年8月20日
  • salesforce的功能_salesforce开发

    salesforce的功能_salesforce开发时刻分享,时刻感恩!124、【CustomURLButtonforCommunity】:CreatingCustomButtonCodeforPartnerCommunities&SalesforceInternal场景:需要在Community中应用URL自定义Button,并且URL不受环境影响-避免HardCode。方案1Sample:{!URL……

    2022年10月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号