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

分析:假如:1月1日有1对兔子,根据题目“从出生后第3个月起每个月都生一对兔子”即3月1日这对兔子产子一对由此可推出一对兔子从出生到产子的时间为每两个月一次,从第二对兔子开始,后续兔子的产子时间相同由此可得出以下的兔子数规律    兔子的规律为1,1,2,3,5,8,13,21....

从第3月开始,每月兔子的总数等于上两月兔子总数之和

总数量           1          1          2          3          5          8            13          21

月份               1月        2月        3月        4月        5月        6月        7月        8月

A                          A1          A2          A3          A4          A5          A6

兔                                                                          A1-1      A1-2      A1-3      A1-4

子                                                                                        A2-1      A2-2      A2-3

族                                                                                                      A3-1      A3-2

谱                                                                                                      A1-1-1   A4-1

A1-1-2

A1-2-1

A1-2-1

A2-1-1

 public class Prog1 {
public static void main(String[] args) {
int Month=8;
System.out.println("第"+Month+"月,兔子的总对数有:"+Sum(Month)+"对");
}
private static int Sum(int Month) {
if(Month==1||Month==2) {//第1月和第2月单独计算
return 1;
}else {
return Sum(Month-1)+Sum(Month-2);//从第3月开始,每月兔子的总数等于上两月兔子总数之和
}
}
}
/*程序编译运行的结果如下:
第8月,兔子的总对数有:21对
*/

Java50道经典习题-程序1 不死神兔的更多相关文章

  1. Java50道经典习题-程序50 文件IO

    题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. impo ...

  2. Java50道经典习题-程序18 乒乓球赛

    题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.分析: ...

  3. Java50道经典习题-程序46 字符串连接

    题目:编写一个两个字符串连接的程序 import java.util.Scanner; public class Prog46 { public static void main(String[] a ...

  4. Java50道经典习题-程序47 输入数字打印星号

    题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*. import java.util.Scanner; public class Prog47{ public static ...

  5. Java50道经典习题-程序6 求最大公约数及最小公倍数

    题目:输入两个正整数m和n,求其最大公约数和最小公倍数.分析:用辗转相除法求最大公约数    两个数的最大公约数:设两个数分别为n和m,(n>=m);用定义一个变量i,使用for循环,将i的取值 ...

  6. Java50道经典习题-程序5 判断分数等级

    题目:利用三元运算符来完成此题:从键盘录入一个整型的分数,没有负分满分为100分,学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示.分析:三元运算符的格式为:逻 ...

  7. Java50道经典习题-程序7 处理字符串

    题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数.分析:利用while语句,条件为输入的字符不为'\n'. import java.util.*; public class Pr ...

  8. Java50道经典习题-程序8 输入数字求和

    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 分析:关键是计算出每一项的值. i ...

  9. Java50道经典习题-程序10 自由落体

    题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? import java.util.Scanner; public cl ...

随机推荐

  1. JSP显示错误信息中四个范围来保存变量

    JSP中提供了四个范围来保存变量,分别是page,request,session,以及application 其中page范围只在当前页面有效,离开当前页面就失效了,这个肯定不行 request范围在 ...

  2. 我的Linux之路——xshell连接linux虚拟机

    出自:https://www.linuxidc.com/Linux/2016-08/134087.htm xshell 5登录本地虚拟机的具体操作步骤如下: 1.首先打开虚拟机,登录到操作系统; 2. ...

  3. then()方法是异步执行

    then()方法是异步执行 就是当.then()前的方法执行完后再执行then()内部的程序 这样就避免了,数据没获取到等的问题

  4. innobackupex 备份数据搭建 MySQL Slave

    简介: 数据量比较大时,使用 innobackupex 备份数据新增 MySQL Slave 节点. 安装 innobackupex 工具,我这里写过一次:http://www.cnblogs.com ...

  5. Gearmand 任务分发系统

    简介: Gearmand 是一个用来把工作委派给其它机器.分布式的调用更适合做某项工作的机器.并发的做某项工作在多个调用间做负载均衡.或用来调用其它语言的函数的系统. 简单来讲,就是客户端程序把请求提 ...

  6. Keepalived 角色选举

    简介: 1.在 Keepalived 集群中,其实并没有严格意思上的主.备节点,虽然可以在 keepalived.conf 中定义 state 选项为 MASTER 状态,但是这并不意味着此节点就一直 ...

  7. Excel VBA入门(一)数据类型

    与其它的编程语言一样,VBA也有它自己的数据类型.讲到数据类型,就离不开"变量"与"常量"这两个概念,变量与常量,都是用于保存数据的.顾名思义,"变量 ...

  8. javascript的constructor属性

    /* constructor 属性 constructor 属性返回所有 JavaScript 变量的构造函数. */console.log("John".constructor) ...

  9. c/c++中关于String类型的思考

    首先说明:String并不是一种内置类型,因此任何通过String声明出来的实例都不是一个变量,不同于内置类型因此String仅仅能称之为一种特殊的型别,没错String是一个类类型. 一般来说c语言 ...

  10. code3027 线段覆盖2

    dp 数据:d[i].a d[i].b d[i].v 分别表示第i条线段的起始点,结束点,价值 先按d[i].b排好序 dp[i]表示前i条线段的最大价值 方程: dp[i]=max{ dp[i-1] ...