母牛的故事

2021-06-21 04:15:57 字數 1069 閱讀 3578

有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?

輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n(0對於每個測試例項,輸出在第n年的時候母牛的數量。

每個輸出佔一行。

245

0

2

46

lcy

#include using namespace std;

int main()

;//把a[0]置為0

while(cin>>n&&n!=0)

cout<

補充:

/*#includemain()

,n,i;

for(i=4;i<57;i++)

while(scanf("%d",&n)!=eof&&n!=0)}*/

/*對於乙個問題,首先要學會分析。我們設在第n年有f(n)頭母牛,那麼該值有什麼有關?

1)去年的母牛,只要沒有死,今年仍在因此有f(n-1)頭,

2)今年出生的母牛有多少?大前年(第n-3年)有多少頭母牛,那麼到了今年這些牛都能生小牛了,因此出生數為f(n-3).

從而今年的母牛數為f(n)=f(n-1)+f(n-3).

開始時(即第1年)有多少頭母牛?它們處於什麼狀態(是可以生小母牛的,還是當生的小母牛,還是其它?)如果假定第1年只有一頭剛生小母牛,那麼f(1)=1,第2年有f(2)=1第3年有f(3)=1,從第4年開始這母牛生小牛了,有f(4)=2(恰好就是f(3)+f(1))

因此得到遞推公式:f(1)=f(2)=f(3)=1,f(n)=f(n-1)+f(n-3)(n>=4)

如果第1年的母牛是能生小母牛的牛,那麼:

f(1)=2,f(2)=3,f(3)=4,f(n)=f(n-1)+f(n-3)(n>=4)

...

不管開始情況如何,遞推公式f(n)=f(n-1)+f(n-3)(n>=4)總是對的,因此只要考慮初始狀態(要考慮3年的情況)

*/

母牛的故事

有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0 對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。245 0 246 include...

母牛的故事

有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。245 02 46lcy c語言程式...

母牛的故事

有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?input 輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0output 對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。sampl...