古典问题:有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?

思考这道题的时候,如果你简单的推算一下,会发现每个月的兔子总数为1,1,2,3,5,8,13,21…

诶?!这不就是一个斐波那契数列嘛——第一个和第二个数字都是1,而后续的每个数字是其前两个数字之和。

知道了这个规律,再结合递归的思想,很容易就能得出结果~

const readline = require("readline-sync");
var n = readline.question("请输入月份:");
function foo(n){if (n === 0) return 0;if (n === 1) return 1;return foo(n - 2) + foo(n - 1);
};
console.log("第"+n+"个月的兔子总数为"+foo(n)+"只。");
//请输入月份:10
//第10个月的兔子总数为55只。

JavaScript算法(实例八)递归计算每个月的兔子总数【斐波那契数列】相关推荐

  1. 有趣的兔子(斐波那契数列)

    有趣的兔子(斐波那契数列) 如果每对兔子每月繁殖一对子兔,而子兔在出生后第二个月就有生殖能力,试问一对兔子一年能繁殖多少对兔子?可以这样思考:第一个月后即第二个月时,1对兔子变成了两对兔子,其中一对是 ...

  2. c语言减治法求a的n次方算法,拜托,面试别再问我斐波那契数列了!!!

    面试中,问得比较多的几个问题之一,求斐波那契数列f(n)? 画外音:姐妹篇 <拜托,面试别再问我TopK了!!!> <拜托,面试别再让我数1了!!!> 什么是斐波那契数列? 斐 ...

  3. Java编程练习之:有关兔子的斐波那契数列问题解析

    文章目录 1. 题目 2. 思路 3. 代码 4. 运行结果 1. 题目 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的 ...

  4. 古老递归问题(兔子版本斐波那契数列)

    题目: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 首先,我目前还是菜鸟,若解答有问题,直接评论戳我吧! 这是 ...

  5. 兔子生兔子问题(斐波那契数列)

    问题描述: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少 分析: 这道题我们可以把兔子分为三个阶段,幼崽.成年,生 ...

  6. 算法练习day20——190411(重建二叉树、斐波那契数列、跳台阶、矩形覆盖、变态跳台阶、旋转数组的最小数字、矩阵中的路径)

    1.重建二叉树 根据二叉树的前序遍历和中序遍历的结果,重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. preorder = [3,9,20,15,7].inorder = [9 ...

  7. 递归优化为递推:数组/临时变量-计算兔子(斐波那契数列)

    题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,一对小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月(n<=50)的兔子总数为多少对? 题解 多次递归 /* 找规律: ...

  8. 兔子问题(斐波那契数列)

    有这样一个有趣的"兔子问题":"假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄,问一 ...

  9. 【算法】【递归与动态规划模块】斐波那契数列的系列问题解法及递推类型问题的最优解

    目录 前言 问题介绍 解决方案 代码编写 java语言版本 c语言版本 c++语言版本 思考感悟 写在最后 前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批 ...

  10. 兔子c语言程序,可爱的C语言程序。....兔子问题...斐波那契数列

    输入月数(少于40): 40 M.1:         1M.2:         1M. 3:         2 M. 4:         3M. 5:         5M. 6:       ...

最新文章

  1. java获取文件的所有者_java获取文件夹下所有文件的名称 | 星尘
  2. CRNN维度变换的解释这样你也可以自定义CRNN了
  3. AIX忘记root密码后,重设密码步骤
  4. scala 方法、函数定义小结
  5. 每日一笑 | 为什么椅子总是最乱的?
  6. C++远航之封装篇——类外定义和::
  7. [Xilinx]Xilinx ISE14.2中调用文本编辑器NotePad++设置方法
  8. oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
  9. 在 Domoticz 中添加插座开关
  10. Linux下的网卡驱动程序的编写过程(转)
  11. 框架的配置文件的映射机制
  12. CNN的基本概念、常用的计算公式和pytorch代码
  13. 盘古搜索:上市是既定策略 寻求股权多元化
  14. 第12章实验1:学生成绩管理系统V5.0(c语言)
  15. 使用虚拟机备份软件备份VMware vSphere虚拟机
  16. CCD视觉检测设备如何选择光源
  17. 鼠标键为什么按小键盘5以及+的时候却有时变成了右键点击,如何改为左键点击
  18. 土壤水势传感器是什么
  19. php机器代出价,php - PHP/MySQL自动出价系统
  20. Python--回头看--数据类型

热门文章

  1. IntelliJ Idea 常用快捷键 (经过测试)
  2. 最详细的PCL编译安装流程
  3. ROS-创建功能包和节点
  4. 2小时c++与ros教学
  5. laydate日期插件使用
  6. 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT
  7. 练习:----点击按钮文字变颜色
  8. javascript 函数式编程(1)
  9. Flutter 项目开发指导 从基础入门到精通使用目录
  10. java基础—Objcet中的equals方法重写