經典遞迴 兔子繁殖問題

2021-09-19 10:02:32 字數 673 閱讀 4533

題目:

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

輸入格式:

輸入乙個數n,表示第n個月,1<=n<=24。

輸出格式:

輸出這個月兔子的數目。

輸入樣例:

4輸出樣例:

5下面是我的**:

#includeint two(int x)

main()

分析:

(1)首先需要根據數字規律推出第乙個月為初始值1,第二個月為2,且之後的每乙個月的值都為前兩個月之和;

(2)需要構造乙個遞迴函式:x值為1時,可直接計算出1;x為2時,是在x-1=1的基礎上再加一;

x>2時,就是將x-1和x-2的函式值相加,自然需要在這裡呼叫函式本身,引數為x-1和x-2;

(3)要從內部理解這個函式起效的原理,可以理解為它是以x=1,x=2這兩個為計算基礎計算的,有了這兩個基礎,x=3時將x=1,2的函式值相加;於是在x=4時,就將x=2,3的函式值相加;在x=5時,將x=3,4的函式值相加…以此類推,只需輸入x的值,就可以用此函式計算出任何x月的兔子數;

經典演算法 兔子繁殖問題

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

兔子繁殖問題

問題 有一對小兔子,從出生後第3個月起每個月都生一對兔子。小兔子長到第3個月後每個月又生一對兔子。按此規律,假設沒有兔子死亡,第乙個月有一對剛出生的小兔子,問第n個月有多少對兔子?分析 這個月的兔子只有兩個 乙個 是上個月的老兔子活到了這個月,另乙個 是這個月剛出生的兔子,而這個月剛出生的兔子,個數...

兔子繁殖 遞迴法與思路

題目描述 有一種兔子,出生後乙個月就可以長大,然後再過乙個月一對長大的兔子就可以生育一對小兔子且以後每個月都能生育一對。現在,我們有一對剛出生的這種兔子,那麼,n個月過後,我們會有多少對兔子呢?假設所有的兔子都不會死亡。輸入輸入僅一行,包含乙個自然數n n 40 輸出輸出僅一行,包含乙個自然數,即n...