原题链接
算来算去 就是一个递推公式 cow[i] = cow[i-1]+cow[i-3];
其实这个题意有点乱,说求母牛,那么 小母牛算么?显然 它算了,因为Sample Output中第二年的时候 是 结果是2。
那恰好就是 第四年的时候 是前一年的母牛数 + 四年前的那些母牛生的小牛变成的牛(有点绕,仔细分析一下就OK了~)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int cow[60];
int init()
{
int i;
cow[1] = 1;
cow[2] = 2;
cow[3] = 3;
for (i=4; i<=55; i++)
cow[i]=cow[i-1]+cow[i-3];
}
int main()
{
init();
int n;
while (cin>>n, n)
{
cout<<cow[n]<<endl;
}
return 0;
}