思路:题目题目
主要就是小牛会长大,要注意小牛在哪一年长大了也可以生孩子了哈哈,开个数组表示这一年出生了多少个小牛,其他的就没什么了;
代码:
#include<iostream>
#include<cstdio>
#define maxn 60
using namespace std;
int f[maxn],born[maxn];//born表示这一年生下了几头小牛
int main(void)
{
int n,t;
f[1]=1;born[1]=0;
f[2]=2;born[2]=1;
f[3]=3;born[3]=1;
f[4]=4;born[4]=1;
t=1; //t是表示这一年有几头牛可以生孩子
for(int i=5;i<=55;i++)
{
t+=born[i-3];
born[i]=t;
f[i]=f[i-1]+t;
//t+=born[i-3];
}
while(~scanf("%d",&n)&&n)
{
printf("%d\n",f[n]);
}
return 0;
}
呼呼