1. 程式人生 > >藍橋杯練習----母牛的故事【提高】

藍橋杯練習----母牛的故事【提高】

題目描述:

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

輸入:

    輸入資料由多個測試例項組成,每個測試例項佔一行,包括一個整數n(0<n<55),n的含義如題目中描述。n=0表示輸入資料的結束,不做處理。

輸出:

    對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。

解決思路:

    通過觀察幾年的資料可以的出fn=f(n-3)+f(n-1),問題可以通過迭代演算法或遞迴來實現。

//迭代演算法實現
#include<iostream>

using namespace std;
int main(){
	int i,n;
	int f[55]={0,1,2,3};
	for(i=4;i<=55;i++){
		f[i]=f[i-1]+f[i-3];
	}
	while(cin>>n&&n>0){            //當輸入小於等於0時程式退出
		cout<<f[n]<<endl;
	}
	return 0;
}