原题地址: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;
}