【程序題】??題目:古典問題:有一對兔子袋哼,從出生后第3個月起每個月都生一對兔子揭斧,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死锐锣,問每個月的兔子總數為多少?
引用分析圖
方法1:使用遞歸思想绳瘟,思路如下
/**
* 分析:
* Month1: 1對 = 1
* Month2: 1對 = 1
* Month3: 1對 + 1對(新出生) = 2
* Month4: 1對 + 1對(上月出生) + 1對(這月新生) =3
* Month5: 1對 + 1對(上上月出生) + 1對(上月出生) + 1對(這月新生) + 1對(第一對新出生的兔子新出生一對兔子) = 5
* Month6: 1對 + 1對(上上上月出生) + 1對(上上月出生) + 1對(上月出生) + 1對(這月新生) + 1對(第一對新出生的兔子上月新出生一對兔子) + 1對(第一對新出生的兔子新出生一對兔子) + 1對(第二對新生兔子此月新生第一對兔子) = 8
* 雕憔。。糖声。斤彼。分瘦。。琉苇。? 1,1,2,3,5,8.嘲玫。。并扇。 菲波那切數列 即 f(n+2) = f(n) + f(n+1);
*/
遞歸
方法2:構造函數思想去团,思路如下
/**
*分析:可以先不用考慮背后究竟是什么數據規(guī)律,只要關注其中一點:
*兔子在什么時候出生的穷蛹,以及什么可以生小兔子了
*所以問題簡化為:實際月份- 出生月份 >= 2 就可以生小兔了
/**
因此先構造一個類土陪,取名為兔子;里面只有一個屬性肴熏,就是出生日期鬼雀;
定義一個兔子類
緊接著,是具體計算和打印蛙吏,在這里我們可以使用一個While條件循環(huán)源哩,在設定的時間范圍內進行計數累加:代碼如下:
具體計算,為了方便直接在構造函數里處理了
歡迎大家提供不同的思路鸦做,相互切磋學習励烦,一起進步!