- 有一對兔子,從出生後第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; } }