C - 母牛的故事
HDU - 2018
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個(gè)年頭開始,每年年初也生一頭小母牛。請編程實(shí)現(xiàn)在第n年的時(shí)候,共有多少頭母牛?
Input
輸入數(shù)據(jù)由多個(gè)測試實(shí)例組成,每個(gè)測試實(shí)例占一行,包括一個(gè)整數(shù)n(0<n<55),n的含義如題目中描述。
n=0表示輸入數(shù)據(jù)的結(jié)束,不做處理。
Output
對(duì)于每個(gè)測試實(shí)例,輸出在第n年的時(shí)候母牛的數(shù)量。
每個(gè)輸出占一行。
Sample Input
2
4
5
0
Sample Output
2
4
6
解法:記錄一歲的牛、兩歲的牛、三歲以上的牛,三歲的牛。一年的開始計(jì)算??倲?shù),然后三歲以上的牛都到了四歲生下一歲的牛,原來一歲的牛長到兩歲,兩歲的牛長到三歲。
最開始記錄每個(gè)牛的歲數(shù),內(nèi)存時(shí)間會(huì)爆掉,所以改變想法記錄每個(gè)歲數(shù)的牛數(shù)量。
代碼:
#include<iostream>
using namespace std;
int main()
{
int x;
while(cin>>x&&x!=0){
int b,c,d;
c=d=0;
b=1;
int num;
for(int i=1;i<=x;i++){
num=b+c+d;
int temp=d;
d=b;
b+=c;
c=temp;
}
cout<<num<<endl;
}
return 0;
}