找规律
1 1+1 2+1 3+1 4+2 6+3 9+4 13+6 19+9 28+13 a+b a为这一年的母牛b为新生的牛崽
很明显是递推 打表列出所有情况
#include<cstdio>
struct node
{
int sum,zai; //sum 为当年所有牛的数量,zai为新生牛数量
}s[55];
void dabiao()
{
//下面是为了更好理解,可直接用if判断
s[1].sum =1;
s[1].zai =0;
s[2].sum =2;
s[2].zai =1;
s[3].sum =3;
s[3].zai =1;
s[4].sum =4;
s[4].zai =1;
for(int i=5;i<55;i++)
{
s[i].zai=s[i-3].zai +s[i-1].zai;
s[i].sum=s[i].zai+s[i-1].sum ;
}
}
int main()
{
dabiao();
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
{
return 0;
}
printf("%d\n",s[n].sum );
}
return 0;
}