文章目录

  • 前言
  • 一、什么是斐波那契数列?
  • 二、斐波那契数列的实现
    • 1.迭代实现
    • 2.递归实现
  • 总结

前言

本次讲解如何用Python中的递归和迭代来实现斐波那契数列。斐波那契数列的代码可谓是基本要求,无论是JAVA还是Python,几乎都是用斐波那契数列来讲解递归的。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是斐波那契数列?

斐波那契数列:0,1,1,2,3,5,8,13,21,34…,这个数列从第3项开始,每一项都等于前两项之和

二、斐波那契数列的实现

1.迭代实现

def fab(n):a1 = 1a2 = 1a3 = 1if n < 1:print("输入错误")return -1while (n - 2) > 0:a3 = a1 + a2a1 = a2a2 = a3n -= 1return a3# 迭代实现if __name__ == '__main__':result = fab(int(input("请输入月份:")))if result != -1:print("一共有%d对兔子" % result)

2.递归实现

def fab(n):if n < 1:print("输入错误")return -1if n == 1 or n== 2:return 1else:return fab(n-1)+fab(n-2)if __name__ == '__main__':result = fab(int(input("请输入月份:")))if result != -1:print("一共有%d对小兔子" % result)

其实两者很容易比较出来,从代码长度来看,递归的长度更短,也更容易理解,但递归也是有缺陷的,当月份大于一定的数值后,递归算法的运算速度会比迭代算法的运算速度更慢,而且更占CPU


总结

递归算法在一定程度上而言,更简单,更快速,但并不是适用于所有的情况,有些情况下贸然使用递归只会适得其反。

Python之斐波那契相关推荐

  1. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,"你学过数据结构吗?&qu ...

  2. python求斐波那契数列第n个数及前n项和_使用python求斐波那契数列中第n个数的值示例代码...

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...

  3. python中斐波那契数列_斐波那契数列–在Python,JavaScript,C ++,Java和Swift中进行了解释...

    python中斐波那契数列 by Pau Pavón 通过保罗·帕文(PauPavón) The Fibonacci sequence is, by definition, the integer s ...

  4. python中斐波那契系数实现的几种方法

    斐波那契系数的原理: 在第一个月有一对刚出生的小兔子,在第二个月小兔子变成大兔子并开始怀孕,第三个月大兔子会生下一对小兔子,并且以后每个月都会生下一对小兔子. 如果每对兔子都经历这样的出生.成熟.生育 ...

  5. 用python输出斐波那契数列的前20项_python输出斐波那契数列

    如何用Python输出一个Fibonacci数列有时候觉得自己像个神经病.既纠结了自己,又打扰了别人. #python3def fibo(n): if n受辱时的唯一办法就是忽视它,不能忽视它,就藐视 ...

  6. Python输出斐波那契数列【递归、迭代】

    Python输出斐波那契数列[递归.迭代] 首先 斐波那契数列的定义是什么? 斐波那契数列指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波那契数列以如下被以递推的方 ...

  7. 如何用python求斐波那契数列_如何使用Python实现斐波那契数列

    斐波那契数列(Fibonacci)最早由印度数学家Gopala提出,而第一个真正研究斐波那契数列的是意大利数学家 Leonardo Fibonacci,斐波那契数列的定义很简单,用数学函数可表示为: ...

  8. python编写递归函数、求斐波那契数列_利用Python实现斐波那契数列的方法实例

    今天我们来使用Python实现递归算法求指定位数的斐波那契数列 首先我们得知道斐波那契数列是什么? 斐波那契数列又叫兔子数列 斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推 ...

  9. 斐波那契函数用python_用Python实现斐波那契(Fibonacci)函数

    Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个. 最近在玩Python,在粗略的看了一下Learning Python和Core Python之后,偶然发现网 ...

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

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

最新文章

  1. 让ABAP开发者更加轻松的若干快捷键
  2. UVA 413|LA 5388|POJ 1492|ZOJ 1338 Up and Down Sequences
  3. UI_布局_总体思路
  4. ubuntu上安装CLucene
  5. Shell:dos新建sh脚本在linux下执行报错“/bin/sh^M”
  6. 称重传感器知识:型号,认证,性能与选择
  7. ctf工具-杂项-foremost
  8. 英特尔hd630驱动_英特尔Iris HD Graphics显卡驱动64位_ intel驱动-PChome下载中心
  9. 机器学习——Azure机器学习模型在线搭建实验原理+详细操作步骤+分析(以UCI数据库的数据为例)
  10. Sicily 2014 Dairy Queen
  11. alios是安卓吗_阿里云OS到底是国产系统还是安卓系统?
  12. 重磅!Waymo首席执行官离职,自动驾驶商业化打上“问号”
  13. Python 求列表的最长升序子列
  14. 电脑无线5g网卡发现不了网件R7000的Wifi 5g网络
  15. PIC单片机printf()函数重定向
  16. 华为云找到 “成功”路径
  17. 支付宝商户订单被退款,如何追回?
  18. 拉噗拉司金字塔LaplacianPyramid学习笔记(一半章子怡 + 一半孙俪)
  19. 关于平滑滤波,中值滤波,KNN滤波的图像处理(附matlab代码)
  20. [个人疑问]为什么列表转集合后其长度的地址时变时不变?(未解决)

热门文章

  1. cin gt gt n是c语言中的什么,c++中cinna是什么意思
  2. 大数据行业六大核心发展趋势
  3. oracle替换图片颜色,PS人物抠图、衣服颜色更换及相片增加清晰度方法
  4. putty连接不上该怎么办
  5. webpack常见面试题
  6. 写作的必备技能,markdown的基本语法
  7. 小灰,你出书花了多少钱?
  8. ubuntu的防火墙 ufw
  9. 使用ESP32连接腾讯云实现远程控制方法
  10. Python 爬取迷你MP4电影网,电影名称保存到本地,Requests+lxml框架