原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2018

 

通过推算可以得知牛的数目增长规律是斐波那契数列,且 f[n]=f[n-1]+f[n-3];

用递归写就是:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
#include<set>
#include<map>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mem(a,b) memset(a,b,sizeof(a))
#define closeio std::ios::sync_with_stdio(false)
 
int fun(int a)
{
	if(a==1)
		return 1;
	else if(a==2)
		return 2;
	else if(a==3)
		return 3;
	else
		return fun(a-1)+fun(a-3);
}
 
int main()
{
	int n,x;
	while(cin>>n&&n!=0)
	{
		x=fun(n);	
		cout<<x<<endl;
	}	
	return 0;
}