斐波那契数列是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, ...... 该数列从第三项开始,每一项都等于前两项之和。 
这里我们使用递归的方法来实现斐波那契数列:

def fib(n): if n <= 1:return nreturn fib(n-1) + fib(n-2)

这个递归函数的基本思路是: 
1. 斐波那契数列的前两项是 1。所以如果 n <= 1,直接返回 n。
2. 否则,计算前两项 fib(n-1) 和 fib(n-2) 的和。 
3. 递归重复步骤 2,直到 n <= 1,然后返回结果。 
举个例子,要计算 fib(5),函数调用堆栈为:

fib(5) 
-> fib(4) + fib(3) 
-> (fib(3) + fib(2)) + (fib(2) + fib(1)) 
-> ((fib(2) + fib(1)) + fib(2)) + (fib(2) + 1)
-> (1 + 1) + 1 + 2   = 5 

所以 fib(5) 的结果是 5。 
这个递归实现的优点是简单易理解,缺点是递归深度大时会存在栈溢出的问题。可以通过记忆化搜索等优化方法解决这个问题。

Python 中如何实现斐波那契数列递归函数?相关推荐

  1. python输入第十个斐波那契数列,0,1,1,2,3,5,8,13,21,34

    题目:python输入第十个斐波那契数列,0,1,1,2,3,5,8,13,21,34 思路:斐波那契数列定义 : '''递归''' def s(x):n = []if x ==1 or x == 2 ...

  2. Python手动编程实现斐波那契数列

    Python手动编程实现斐波那契数列 目录 Python手动编程实现斐波那契数列 #斐波那契数列起源 #斐波那契数列特点<

  3. python 递归方式实现斐波那契数列

    python 递归方式实现斐波那契数列 import time t1=time.time() def factorial(n):if n==1 or n==2:return 1else:return ...

  4. python利用列表计算斐波那契数列前30项并输出_python分享斐波那契数列示例分享 Python 分享斐波那契数列前20项和...

    分享助python大神.斐波那契数列,编写程序,利用列具体内容 拜托拜托有时候,最痛苦的其实不是失去,而是你得到以后其实不快乐. ##缩进格式看图 l=[1,1] for i in range(28) ...

  5. Python生成器、实现斐波那契数列

    Python生成器.实现斐波那契数列 """生成器按照一定规则不断产生新元素的对象无法直接输出生成器里面的内容生成器保存的是数据的算法/规则,每一次调用产生一个生成器创建 ...

  6. python利用列表计算斐波那契数列前30项_python斐波那契数列的计算方法

    题目: 计算斐波那契数列.具体什么是斐波那契数列,那就是0,1,1,2,3,5,8,13,21,34,55,89,144,233. 要求: 时间复杂度尽可能少 分析: 给出了三种方法: 方法1:递归的 ...

  7. Python:递归输出斐波那契数列

    今天学习Python的时候做一道练习题,题目是这样的: 题目 导入 问题 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总对数 ...

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

    递归简而言之就是函数自己调用自己,在python中,会自动限制调用次数防止造成内存溢出 下面时使用递归的方法实现斐波那契数列取值的代码 def fibonacci(n):if n == 1 or n ...

  9. Python以列表返回斐波那契数列

    这是一次上机练习题,其实很简单,但却给我难住了.总觉得我的解法很繁琐,期待最优解. 通过这道题,我也发现了自己在python基础上存在着不足,本篇文章来讨论这道题的最优解,并且复习一下python中列 ...

最新文章

  1. 推荐给Android开发者的抢手书单
  2. python3.8提示pip_Linux下升级安装python3.8并配置pip及yum的教程
  3. QT显示框架嵌入Vs控制台工程
  4. java项目eclipse上tomcat部署后项目添加不进去
  5. redis远程链接(NOAUTH Authentication required)
  6. 华为机试HJ73:计算日期到天数转换
  7. python学习手册-Python学习手册
  8. Atitit.atiInputMethod v2词库清理策略工具    q229
  9. java digestutils.md5hex_linux下md5sum和DigestUtils.md5Hex的关系 博客分类: java
  10. 案例|工业物联网解决方案·光伏电站
  11. 巴厘岛游记:风吹又日晒,自由又自在
  12. 快速指数(快速幂)/模指数运算代码模板
  13. B75对应的服务器芯片组,H77及B75芯片组解析
  14. 雷军内部信:米家有品拆分 做独立电商
  15. 和女友做完后.......她说.....
  16. c++ STL 算法一
  17. HashMap的尾部遍历问题--Tail Traversing
  18. VMware vMotion简介
  19. access DateAdd函数
  20. 计算机网络XP系统电路,xp系统计算机的无线网络连接解决方​​案未连接

热门文章

  1. MySQL binlog日志恢复数据详细操作步骤
  2. 山东计算机春考专科院校分数,2020年山东春季高考专科批第一次志愿录取分数线...
  3. Dask简介(python)
  4. VBA宏实现Word论文自动排版
  5. 随身wifi wifi×××带来的安全问题
  6. Tornado自定义路由
  7. Lucene 索引原理
  8. javascript的执行机制
  9. vscode导入python包_使用Visual Studio Code将请求导入Python
  10. 索尼数码相机数据恢复,相机格式化后怎么恢复