一、斐波那契数列

首先,我们来了解一下斐波那契,斐波那契的发明者是意大利数学家昂纳多·斐波那契

我们拿兔子繁殖的例子来学习斐波那契~

数据统计表如下图所示:

迭代实现:

def fab(n):n1 = 1n2 = 1n3 = 1if n < 1:print('输入有误!')return -1while (n-2) > 0:n3 = n1 + n2n1=n2n2=n3n -= 1return n3
result = fab(35)
if result != -1:print('总共有%d对小兔崽子诞生!'% result)

递归实现:

def fab(n):if n < 1:print('输入有误!')return -1if n == 1 or n == 2:return -1else:return fab(n-1) + fab(n-2) result = fab(20)
if result != -1:print('总共有%d队小兔崽子诞生!'% result)

来看一下上面递归实现的原理:

注意一点,递归如果使用不当,效率会很低。我们将上面例子中的fab()参数变大一点,会发现:用迭代代码实现基本是毫秒级的,而用递归实现就要考验计算机的CPU能力了(N秒~N分钟不等),座椅不支持大家所有问题都是用递归来解决

课时23 递归:这帮小兔崽子相关推荐

  1. 小甲鱼《零基础学习Python》课后笔记(二十三、二十四):递归——这帮小兔崽子和汉诺塔

    由于递归实在不太理解,而且觉得题目大多是为了用递归而使用递归,觉得题目暂时没有做的必要,所以先跳过,以后用到再补充学习- 2018年8月11日

  2. 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)

    def fab(n):迭代的方法if n<1:return -1while(n-2)>0:n3=n2+n1n1=n2n2=n3n=n-1return n3 def rabbit(n):递归 ...

  3. P24 023递归:这帮小兔崽子

    小甲鱼Python P24 023递归:这帮小兔崽子 P24 023递归:这帮小兔崽子 # def fab(n): # n1 = 1 # n2 = 1 # n3 = 1 # # if n < 1 ...

  4. 小甲鱼零基础学python笔记 P24 递归:这帮小兔崽子

    P24 递归:这帮小兔崽子 斐波那契数列:后一个数等于前两数之和 f(n-2)+ f(n-1)=f(n) 例题: 方法一:函数执行 利用函数来执行: 函数执行逻辑: 初始值都为1,利用循环来进行判断若 ...

  5. 课时23:递归:这帮小兔崽子

    目录: 斐波那契数列 **************** 斐波那契数列 **************** 这节就用递归来实现斐波那契数列.首先,我们要知道斐波那契的发明者,是意大利数学家昂纳多.斐波那契 ...

  6. 零基础入门学习Python(23)--递归:这帮小兔崽子

    知识点 我们都知道兔子繁殖能力是惊人的,如下图: 我们可以用数学函数来定义: 假设我们需要求出经历了20个月后,总共有多少对小兔崽子? 迭代实现 def fab(n):n1 = 1n2 = 1n3 = ...

  7. 《零基础入门学习Python》(23)--递归:这帮小兔崽子

    前言 我们接下来吧递归的用法再熟练一点,大家都知道斐波那契数列吧,以下我们以实际的兔子繁殖的例子来编写一个关于斐波那契数列的递归函数 知识点 我们都知道兔子繁殖能力是惊人的,如下图: 我们可以用数学函 ...

  8. FishC笔记—23,24 讲 递归:这帮小兔崽子,汉诺塔

    本期内容详解: 斐波那契数列的两种实现方式: 迭代的方式: def fab(n): n1 = 1 n2 = 1 n3 = 1 if n < 1: n = int(input('输入有误,请重新输 ...

  9. 023递归:这帮小兔崽子

    斐波那契数列 20个月后总数量 迭代实现方式 def fab(n):n1 = 1n2 = 1n3 = 1if n<1:print("输入有误")return -1while ...

最新文章

  1. docker注册表回传失败 群晖6.2_Glances实时监视群晖运行状况
  2. CDays–4 习题六(修改文本)及相关内容解析。
  3. NeHe OpenGL教程 第二十三课:球面映射
  4. python tab键自动补全_Python Tab自动补全
  5. 结构型模式之Flyweight模式
  6. Ubuntu12.04使用技巧
  7. 七招制胜ASP.NET应用程序开发
  8. php mysql需要服务器配置_php服务器配置(php+mysql+iis)步骤
  9. 从零开始学架构三 高性能
  10. xp 与 windows 7 共享收藏夹
  11. html textarea粘贴事件,javascript在textarea中捕获粘贴事件
  12. AlloyTeam|腾讯全端 AlloyTeam 团队 - HTML5开源图像处理框架AlloyImage
  13. android 用代码模拟滑动,Android开发之使用150行代码实现滑动返回效果
  14. matlab对主动悬架的仿真分析,运用MatlabSimulink对主动悬架力学仿真与分析.doc
  15. 饼状统计图php,制作圆饼统计图
  16. Servers IIS 重启命令
  17. Vue配置TinyMCE富文本编辑器 + 图片(本地)上传到服务器
  18. RISC-V MCU应用方案之Little VGL(LVGL)移植(一)
  19. 应用Joyoshare VidiKit裁剪视频的小技巧
  20. C#--DataTable的各种操作

热门文章

  1. CMeKG代码解读(以项目为导向从零开始学习知识图谱)(一)
  2. 通过 JS 添加样式
  3. 2018.10.19 NOIP训练 yk赚钱记(01分数规划)
  4. 577,反转字符串中的单词
  5. 事件抽取与事理图谱(二)
  6. Linux系统学习导图整理
  7. 书法字帖 PDF转化为可打印PDF
  8. python写的平行四边形_python 已知平行四边形三个点,求第四个点的案例
  9. 埃森哲报告解读 | 见微知著,把握中国消费市场新常态
  10. 区块链中的智能合约是什么