杭電2018母牛的故事

思考過程:

年份       頭數

 1  1(初始成年母牛)
 2 2(成年母牛1頭,未成年母牛1頭)
 3 3(成年母牛1頭,未成年母牛2頭)
 4 4(成年母牛1頭,未成年母牛3頭)
 5 6(成年母牛2頭,未成年母牛4頭)
 6 9(成年母牛3頭,未成年母牛6頭)
 7 13(成年母牛4頭,未成年母牛9頭)
 8 21(成年母牛6頭,未成年母牛13頭)
 9 28(成年母牛9頭,未成年母牛19頭)

由此可知,從第五年起,某年成年的母牛數=3年前成年母牛數+3年前未成年母牛數

   某年未成年母牛數=當年成年母牛數+[去年未成年母牛數-(當年母牛數-去年)]

附AC代碼:

#include<iostream>
using namespace std;
int main()
{
	int n,adult[60],minority[60];
	adult[0]=adult[1]=adult[2]=adult[3]=1;
	minority[0]=0,minority[1]=1,minority[2]=2,minority[3]=3;
	for(int i=4;i<=55;i++)
	{
		adult[i]=adult[i-3]+minority[i-3];
		minority[i]=adult[i]+minority[i-1]-(adult[i]-adult[i-1]);
	}
	while(cin>>n)
	{
		if(n!=0)
		{
			cout<<(minority[n-1]+adult[n-1])<<endl;
		}
		else
		{
			break;
		}
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章