今天给大家带来一个经典题,斐波那契数列,题目如下:

   //题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,//小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,要求根据输入的月份输出对应兔子的个数//解题思路: 月 份 :1   2  3  4  5  6  7   8   9//         兔子数 :1   1  2  3  5  8  13  21  34//  上方可以看出,是有规律可循的,第n个数 == n-1 + n-2;//共2种实现方式,首先展示第一种,利用数组实现Scanner sca = new Scanner(System.in);System.out.println("请输入您要查看的月数:");int month = sca.nextInt();int[] num = new int[month];//前两位是固定值,设置固定值num[0] = 1;num[1] = 1;for (int i = 2; i < num.length; i++) {num[i] = num[i-1] + num[i-2];}System.out.println(month + "月兔子共有:" + num[month-1] + "对");//第二种方式,利用递归实现,递归原理:假设输入的是5,从5开始依次往下走,再返回来,最后返回结果,类似于循环,但不是循环int num2 = fbnqRabbit(month);System.out.println("第" + month + "个月的兔子数:" + num2 + "只");}/*** 递归实现兔子生兔子(斐波那契数列)* @param month 输入的月份* @return 返回month对应的兔子对儿数*/public static  int fbnqRabbit(int month) {//如果到了1或2直接返回1if (month == 1 || month == 2) {return  1;}//返回每次计算值,在本方法内完成,最后返回month月份对应的数return  fbnqRabbit(month - 1) + fbnqRabbit(month - 2);}

递归实现会有一个问题,输入50以上的数字就不能输出结果了,就算能够输出,也是非常非常慢,使用递归实现该问题如果输入数字过大可能会导致栈内存溢出,为了解决这个问题,利用数组实现,也是不错的选择,数组实现的原理,也是先将数据复制到数组内,然后输入1000不是问题,测试通过。

制作不易,望各位多多支持!!

兔子生兔子之递归问题(递归实现斐波那契数列)相关推荐

  1. 递归经典应用之斐波那契数列

    递归经典应用之斐波那契数列 (一)递归概念 将复杂问题 递推分解为最简问题 然后将结果回归的过程 Windows - Linux Linux = Linux is not Unix 使用方法: 自己调 ...

  2. [python]练习之递归和循环实现斐波拉契数列

    1 # 程序功能:用递归和循环实现斐波拉契数列 2 # 0 1 1 2 3 5 8 13 21 34 3 4 def digui_fibo(number): 5 if number == 1: 6 r ...

  3. C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)

    本节主要说了递归的设计和算法实现,以及递归的基本例程斐波拉契数列.strlen的递归解法.汉诺塔和全排列递归算法. 一.递归的设计和实现 1.递归从实质上是一种数学的解决问题的思维,是一种分而治之的思 ...

  4. 笔试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:递归的方法求解斐波那契数列、用概率与统计的数学方法解决,3.动态规划

    笔试题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法.该题有三种解法:1.递归的方法求解斐波那契数列.2.用概率与统计的数学方法解决,3.动态规划 ...

  5. 利用递归、迭代解决斐波那契数列问题与汉诺塔难题

    有人说,"普通程序员使用迭代,天才程序员使用递归",真是这样吗? 1.浅谈递归与迭代 <1>递归的基本概念: 程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个 ...

  6. Python 算法之递归与尾递归,斐波那契数列以及汉诺塔的实现

    文章目录 递归概念 递归要素 递归与迭代的区别 示例一:阶乘 示例二:斐波那契数列 示例三:汉诺塔问题 尾递归 Python 中尾递归的解决方案 递归概念 递归:程序调用自身的编程技巧称为递归( re ...

  7. c语言斐波那契数列递归数组,c语言斐波那契数列递归法

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

  8. 数据结构与算法--再谈递归与循环(斐波那契数列)

    再谈递归与循环 在某些算法中,可能需要重复计算相同的问题,通常我们可以选择用递归或者循环两种方法.递归是一个函数内部的调用这个函数自身.循环则是通过设置计算的初始值以及终止条件,在一个范围内重复运算. ...

  9. python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈

    本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...

  10. 递归法 最大公倍数 斐波那契数列 数组插入排序改递归

    辗转相除法: 例如:m%n=0;能够整除则n为最大公倍数 若m%n=k,不能够整除的话,继续辗转相除变为n%k 若n%k=c,不能整除的话继续这样- 核心代码 static int gcd(int m ...

最新文章

  1. 算术运算中隐式类型转换
  2. 访问手机app怎么看路径_推荐一款手机看国内电视的app
  3. Linux系统的启动过程
  4. 【jzoj】2018.2.3NOIP普及组——D组模拟赛
  5. .net core 学习小结之 JWT 认证授权
  6. layui获取input信息_python爬虫—用selenium爬取京东商品信息
  7. 编译用于高放射性环境的应用程序
  8. Altium Designer(二):规则设置
  9. 可道云 docker 群晖_利用群晖NAS同步文献
  10. MySQL的索引失效问题
  11. javascript函数传参
  12. 显卡排行榜天梯图2022 显卡性能天梯图2022
  13. 联想服务器linux系统raid驱动,ThinkSystem服务器RAID 530/930系列阵列卡驱动及安装RHEL7.3要点说明...
  14. 销售的几种层次-销售笔记
  15. html utf 8编码转换器,utf8和gb2312编码在线转换工具
  16. (完美可行)小米设备一键激活XPOSED框架方法
  17. css 文本超出2行就隐藏并且显示省略号
  18. 小学计算机小组兴趣活动计划,计算机兴趣小组活动计划
  19. Andriod Scroller使用小结
  20. ipynb转py命令

热门文章

  1. About Intellij IDEA
  2. 偏相关系数 计算机,简单相关系数
  3. vsan虚拟化和共享存储服务器,1.1 vSAN入门及数据存储
  4. Chip天线(WiFi/蓝牙陶瓷芯片天线) 选型
  5. Jenkins+Jmeter、jmeter脚本执行执行失败,jenkins构建成功
  6. linux开启启动服务的顺序,SUSE服务启动顺序
  7. win7计算机里桌面菜单没有反应,win7系统鼠标右键点击桌面没反应怎么办 鼠标右键没反应解决方法...
  8. 客户端Git代码的下载与提交
  9. 测试联通移动信号软件,联通VS移动:4G速度实测对比
  10. 自动发送寄件通知教程