关于不死兔子的编程题**

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用

题目是这样说:

有一对兔子,从出生后第3个月起每个月都生一对兔子 ,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?

首先分析题目,题中说的都是兔子的对数,一对兔子也是只生一对兔子,所以下面关于兔子数说的全是兔子对数

第一个月1对兔子,第3个月起每个月都生一对兔子,新生的兔子又在之后的第三个月开始生兔子,
也就是3月生的兔子5月开始生兔子,4月生的兔子6月开始生兔子,6月生的兔子7月开始生兔子…

可以生的兔子数:第一对兔子,第三个月才可以生兔子,这样前2个月是没有可以生的兔子的 ,第三个月可以生的
兔子变为1,新生的兔子又是两个月后(第三个月)开始生,如此

每月可生的兔子个数就是: 上个月可生的兔子 + 本月新增的可生兔子,因为新生的兔子是第三个月开始可以生
兔子,比如3月新生的兔子5个可以生兔子,4月新生的兔子是6月开始生兔子,5月新生的兔子是8月开始生兔子…
所以每个月新增的可生兔子数 就是 两个月前的新生兔子数,这样

 每月可生的兔子 =  上个月可生的兔子  +   本月新增的可生兔子,

就是
每月可生的兔子 = 上个月可生的兔子 + 两个月前的新生兔子数

因为兔子都是生一对兔子,所以 每个月新生的兔子数就是 :本月可生的兔子

因为兔子都不死,兔子总对数就是: 上个月的兔子总数 + 本月新生兔子

列表看一下

发现从第三个月开始:
实际每个月可生的兔子数就是,上上个月(两个月前)的兔子总数,这也正是符合了新出生的兔子第三个月开始生兔子;
因此,

每个月可生的兔子数= 两个月前的兔子总数每月新生兔子数 = 每个月可生的兔子数这样:
每个月总兔子数 = 每个月新生兔子数 + 上个月兔子总数也就是:
每个月总兔子数 = 每个月可生的兔子数 + 上个月兔子总数也就是:
每个月总兔子数 = 两个月前的兔子总数 + 上个月兔子总数

这样,从第三个月开始,每个月的兔子总数,就是前两个月的兔子数相加之和
这样就可以写为:

public class Rabbit {public static void main(String[]args){int num1=1;      //两个月前的兔子数int num2 = 1;        //上个月的兔子总数int sum=0;        //兔子总数, 初始化0for(int i = 3;i<=20;i++){sum = num1 + num2 ;    //每月兔子总数 =  两个月前的兔子数 +上个月的兔子总数num1=num2;num2=sum;}//System.out.println(num1);         System.out.println("20个月后兔子总数是:\t"+sum);         //输出兔子总数}}

运行得到 20个月后 兔子总数是: 6765

也可以使用方法 递归,写为:`

public class Rabbit2 {public static void main(String[] args){int n = 20;                //月数System.out.println("第20个月兔子总数为:\t"+sum(n));}public static int sum(int n){if(n==1|| n==2){return 1;}else{//   return (n-1)+sum(n-2);}}
}

关于不死兔子的编程题**相关推荐

  1. java解决兔子_JAVA编程题-用java解决兔子问题

    题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...

  2. java兔子_JAVA编程题-用java解决兔子问题

    题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...

  3. 一些简单的java编程题(2) ————古典问题(兔子问题)

    版权声明: 本文为博主原创文章,未经博主允许不得转载. /* (程序头部注释开始) 版权声明:保留个人权利. 如程序有不当之处,敬请指正.* 文件名称: <一些简单的java编程题(2) --- ...

  4. Java简单编程题:大小写转换、兔子生兔子问题、狼追兔子问题、判断英文句子。

    Java简单编程题 1.大小写转换 2.兔子生兔子问题 3.狼追兔子问题 4.判断英文句子 1.大小写转换 输入一串字母 1.将大写转换为小写,小写转换为大写 2.将其全转换为小写 3.将其全转换为大 ...

  5. JavaScript初学者编程题(7)

    JavaScript初学者编程题(7) 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总对数为多少? 一个经典题目,使用 ...

  6. JAVA50道经典编程题

    加强对基础知识的巩固提升,拓展逻辑思维. JAVA50道经典编程题: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不 ...

  7. java 编程题_最新JAVA编程题全集(50题及答案)92862

    <最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...

  8. 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...

    非常经典的java编程题 程序1:斐波那契数列问题 题目概述: 古典问题: 有一对兔子,从出生第三个月起每月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多 ...

  9. 华为机试题python版节选(基础编程题)

    前言 自学python之后,可以借助这些企业招聘时的机考题目来锤炼一下实践能力.. 每道题含要点解析,是按照自己理解梳理的,多个答案的是结合自己的答案+网上的答案,不一定很严谨,请读者自行在编译器中调 ...

最新文章

  1. 华为敏捷 DevOps 实践:产品经理如何开好敏捷回顾会议
  2. Redis学习与实战之字符串命令
  3. 安卓USB开发教程 二 USB Host
  4. java学习(40):成员实例的定义和访问
  5. 第三章 组装个人计算机
  6. linux安装python3.5_linux安装python3.5.1
  7. tp5之允许跨域请求
  8. JAVAWEB 一一 Spirng(AOP面向切面)
  9. Broadcom Wi-FiWl及brcmfmac驱动程序含有众多安全漏洞
  10. sqlite的数据库文件在什么地方? sqlite数据库文件后缀名,提取方法,打开方法。
  11. ctex linux安装_Deepin Linux 安装和搭建LaTex环境
  12. 华三H3C路由器配置FTP服务并使用电脑连接ftp传输文件
  13. 7.20-7.26 字节推荐算法(DATA-EDU)5道面试题分享
  14. 士不可不弘毅,任重而道远——2021年总结
  15. iphonex正面图_iPhoneX高清全方位图赏
  16. 千里之行始于足下——编译器助手(binutils与elf文件)
  17. YOLOv3论文全文完整理解翻译
  18. 基于R语言的Copula变量相关性分析及应用
  19. 计算机工程学院文艺例会,信息工程学院学生会第一次全体例会
  20. 为vim添加php和css函数字典

热门文章

  1. 最好的编程语言?美国出数据了,Java吃香,objc有“钱”途
  2. 计算机组成原理课程设计基本模型机,广东海洋大学计算机组成原理课程设计-基本模型机的设计与实现讲解...
  3. 医学三维图像几种格式的区别
  4. ATTCK靶场系列(五)
  5. php技术外文原文期刊,科学网—选择外文期刊,也是被逼无赖! - 曹建军的博文...
  6. 吊炸天!11款APP完整源码!
  7. /dev/sda5 contains a file system with error
  8. 2020互联网公司,端午礼盒大比拼!看完,想去上班!
  9. 【Java】java日历
  10. oracle execute immediate create,ORACLE EXECUTE IMMEDIATE 用法详解