杭电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;
}


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