HDU - 2018 母牛的故事(递推)

思路:题目题目

   主要就是小牛会长大,要注意小牛在哪一年长大了也可以生孩子了哈哈,开个数组表示这一年出生了多少个小牛,其他的就没什么了;

代码:

#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;
}

呼呼

猜你喜欢

转载自blog.csdn.net/destiny1507/article/details/81229474