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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网页文字不可以复制_html5实现复制粘贴

    网页文字不可以复制_html5实现复制粘贴大家在上网的时候是否曾经遇到过网页文字无法复制的情况呢?为什么网页文字无法复制呢?或者问如何把不能复制的网页文字复制下来呢?其实,网页文字不能复制原因大部分是网页的制作者为了防止网页内容被被人盗用而设置了复制限制,在网页中嵌入了Javascript语言,通过编程的手段屏蔽了复制功能。下面小编给大家分享下如何把被限制复制的网页文字复制下来。本方法以IE浏览器为例子,打开IE浏览器链接到需要访问的网页…

    2022年10月13日
    6
  • 周鸿祎博客:谷歌Chrome不是浏览器 说的不错

    周鸿祎博客:谷歌Chrome不是浏览器 说的不错http://blog.sina.com.cn/s/blog_49f9228d0100aj4o.html?tj=1

    2022年7月26日
    5
  • kettle连接数据库

    kettle连接数据库

    2020年11月9日
    201
  • Oracle 批量插入(insert all into)

    Oracle 批量插入(insert all into)项目需要用到导入excel表,并解析数据批量插入到oracle数据库中。1)直接解析excel,循环行,拼了sql,executeUpdate。执行一波…咦,这效率很低啊,有多少行数据就执行了多少句sql,基本是一万行已经接近一分钟了。2)每次都仅执行一条sql语句,时间是不是都花在建立连接放开连接balabala的过程上了,用executebatch批量执行sql语句试试。没…

    2022年7月25日
    16
  • java常用类之Calendar类[通俗易懂]

    java常用类之Calendar类[通俗易懂]java常用类之Calendar类Calendar类提供了获取或者设置各种日历的字段的方法。构造方法protectedCalendar():由于修饰符是prodected;所以无法直接创建该对象其他方法方法名说明staticCalendargetInstance()使用默认时区或区域获取日历voidset(intyear,intmonth,intdate,inthourofday,intminute,intsecond)设置日历的时分秒

    2025年12月2日
    3
  • Unity–Cinemachine官方实例详解

    Unity–Cinemachine官方实例详解1.2DCamera搭建一个快速场景,MainCamera选择Orthographic。在Cinemachine下有Create2DCamera,在生成的相机中设置follow,同时注意body的设置,如下图所示在虚拟相机中还需要添加Cinemachineconfiner组件,点击下图中的AddExtension,在弹出的下拉列表中,选择CinemachineConfiner。用来后处…

    2022年5月8日
    51

发表回复

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

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