- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
分析问题:
根源:1对小兔子
第一个月 1 小兔子
第二个月 1 兔子成熟
第三个月 2 生了一对小兔子
第四个月 3 又生了一对小兔子,且前面那对兔子成熟,共有成熟兔子两对,不成熟兔子1对
第五个月 5 生了两对小兔子,且前面那对兔子成熟,共有成熟兔子3对,不成熟兔子2对
可见,只要知道成熟但未参与过生育的兔子数目此问题就可以解决。以下是代码
-
package day06; public class Pratise1 { /* * 斐波那契问题 * 分析问题 * 兔子的增长 * 成熟兔子,小兔子(成熟兔子每个月可生一对兔子,小兔子一个月变成熟) */ public static void main(String[] args) { System.out.println(method(7)); } public static int method(int month) { int f1=1; //小兔子对数 int f2=0; //成熟兔子对数 int f=0; //记录刚成熟的兔子 if(month<3) { return 1; } //兔子成熟 f1=0; f2=1; for(int i=0;i<month-2;i++) { f=f1; //(成熟的兔子但未生过兔子)等于上个月出生的兔子 f1=f2; //出生的小兔子 f2=f+f2; //成熟兔 } return f2+f1; } }