杭电2018 母牛的故事(再用递归)

好气啊,自己找规律找错了。看了下别人ac的代码,思路一下子清晰了:题n年牛的总数等于n-1年的母牛数加上第n年新增的母牛数,第n年只有n-3年的那些母牛才能产母牛,所以第n年的母牛数等于第n-1和n-3年的母牛数的和,即sum(n)=sum(n-1)+sum(n-3),然后递归ac代码如下:

#include <iostream>
#include<math.h>
#include <iomanip>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<algorithm>
#include<stdlib.h>
using namespace std;

int cow(int n)
{
    if(n<=4){
        return n;
    }
    return cow(n-1)+cow(n-3);
}
int main()
{
   int n;
   while(cin>>n)
  {
      if(n==0){
       break;
      }
      cout<<cow(n)<<endl;
  }

    return 0;
}
原文地址:https://www.cnblogs.com/William-xh/p/6826966.html