关于不死兔子的编程题**
关于不死兔子的编程题**
你好! 这是你第一次使用 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);}}
}
关于不死兔子的编程题**相关推荐
- java解决兔子_JAVA编程题-用java解决兔子问题
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...
- java兔子_JAVA编程题-用java解决兔子问题
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解答: 分析:从第一对兔子开始,第1个月1对兔 ...
- 一些简单的java编程题(2) ————古典问题(兔子问题)
版权声明: 本文为博主原创文章,未经博主允许不得转载. /* (程序头部注释开始) 版权声明:保留个人权利. 如程序有不当之处,敬请指正.* 文件名称: <一些简单的java编程题(2) --- ...
- Java简单编程题:大小写转换、兔子生兔子问题、狼追兔子问题、判断英文句子。
Java简单编程题 1.大小写转换 2.兔子生兔子问题 3.狼追兔子问题 4.判断英文句子 1.大小写转换 输入一串字母 1.将大写转换为小写,小写转换为大写 2.将其全转换为小写 3.将其全转换为大 ...
- JavaScript初学者编程题(7)
JavaScript初学者编程题(7) 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总对数为多少? 一个经典题目,使用 ...
- JAVA50道经典编程题
加强对基础知识的巩固提升,拓展逻辑思维. JAVA50道经典编程题: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不 ...
- java 编程题_最新JAVA编程题全集(50题及答案)92862
<最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...
- 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...
非常经典的java编程题 程序1:斐波那契数列问题 题目概述: 古典问题: 有一对兔子,从出生第三个月起每月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多 ...
- 华为机试题python版节选(基础编程题)
前言 自学python之后,可以借助这些企业招聘时的机考题目来锤炼一下实践能力.. 每道题含要点解析,是按照自己理解梳理的,多个答案的是结合自己的答案+网上的答案,不一定很严谨,请读者自行在编译器中调 ...
最新文章
- 华为敏捷 DevOps 实践:产品经理如何开好敏捷回顾会议
- Redis学习与实战之字符串命令
- 安卓USB开发教程 二 USB Host
- java学习(40):成员实例的定义和访问
- 第三章 组装个人计算机
- linux安装python3.5_linux安装python3.5.1
- tp5之允许跨域请求
- JAVAWEB 一一 Spirng(AOP面向切面)
- Broadcom Wi-FiWl及brcmfmac驱动程序含有众多安全漏洞
- sqlite的数据库文件在什么地方? sqlite数据库文件后缀名,提取方法,打开方法。
- ctex linux安装_Deepin Linux 安装和搭建LaTex环境
- 华三H3C路由器配置FTP服务并使用电脑连接ftp传输文件
- 7.20-7.26 字节推荐算法(DATA-EDU)5道面试题分享
- 士不可不弘毅,任重而道远——2021年总结
- iphonex正面图_iPhoneX高清全方位图赏
- 千里之行始于足下——编译器助手(binutils与elf文件)
- YOLOv3论文全文完整理解翻译
- 基于R语言的Copula变量相关性分析及应用
- 计算机工程学院文艺例会,信息工程学院学生会第一次全体例会
- 为vim添加php和css函数字典
热门文章
- 最好的编程语言?美国出数据了,Java吃香,objc有“钱”途
- 计算机组成原理课程设计基本模型机,广东海洋大学计算机组成原理课程设计-基本模型机的设计与实现讲解...
- 医学三维图像几种格式的区别
- ATTCK靶场系列(五)
- php技术外文原文期刊,科学网—选择外文期刊,也是被逼无赖! - 曹建军的博文...
- 吊炸天!11款APP完整源码!
- /dev/sda5 contains a file system with error
- 2020互联网公司,端午礼盒大比拼!看完,想去上班!
- 【Java】java日历
- oracle execute immediate create,ORACLE EXECUTE IMMEDIATE 用法详解