經典的兔子問題

2021-06-25 10:02:58 字數 718 閱讀 7100

這道題是:有一對兔子,長到第三個月開始,每個月生一對小兔子,等到小兔子長到第三個月時,又開始每個月生一對小兔子,假設兔子一直不死,那麼每個月兔子的數量是多少?

剛拿到題,感覺很簡單。可是仔細一想,就發現,還是很麻煩的。因為小兔子到第三個月才會再生小兔子,而小兔子生小小兔子的時候,老兔子也會再生小兔子,那麼他的增量不是固定的,而是呈一種非連續遞增狀態,每兩個月變一次,想用乙個式子表示出來是有相當難度的。好了,夠扯淡得了。

下面看我的解決方法,既然每個月兔子的年齡不是相同的,有乙個月大的(用mon1表示數量),兩個月大的(mon2),和三個月及三個月以上的(mon3),那麼就可以把每個月的兔子分為這三類,然後計算每類兔子的數量,最後相加就是它的總量。

各類兔子的關係是這樣的,先從mon3的看,mon3(本月)=mon2(上個月)+mon3(上個月),接著,mon2(本月)=mon1(上個月),然後,mon1=mon3(上個月)。

解釋一下,本月三個月大的兔子數就是上個月三個月和兩個月大的兔子數之和,因為小兔子長大了;同理本月兩個月大的是上月乙個月大的長大的,而本月乙個月大的是本月三個月大的兔子新生的。最後這幾類數量相加就是每個月的總數。

問題到此結束。

附:我的**如下:

int robert(int n)

inum=mon3+mon2+mon1;

} return inum;

}

這個結果和菲波那楔數的結果是相同的。

經典的兔子生兔子問題(C 遞迴解法)

古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?思路 先求出每個月新增的兔子,再用迴圈求和即可算出這個月總的兔子數。月份 新增加兔子 1 1 2 0 3 1 4 1 5 1 1 6 1 1 1 7 1 1 ...

經典演算法 兔子繁殖問題

有一種動物,它出生後兩天後就開始以每天乙隻得速度繁殖,假設有一天,有乙隻這樣的動物 該動物剛出生,從第三天開始繁殖後代 到第11天,共有多少只?有乙個非常明智的思考,思考過程如下 我們思考第n天的兔子是如何來的,首先第n 1天的兔子都會存活到第n天,並且不會繁殖 第n 2天的兔子都會在第n天繁殖,所...

經典遞迴 兔子繁殖問題

題目 已知有一對兔子,每個月可以生一對兔子,而小兔子乙個月後又可以生一對小兔子 比如 2月份出生的小兔子4月份可以生育 也就是說,兔子的對數為 第乙個月1對,第二個月2對,第三個月3對,第四個月5對 假設兔子的生育期為兩年,且不死。那麼問題來了,你能說出每個月的兔子數麼?輸入格式 輸入乙個數n,表示...