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