链接:http://115.28.203.224/problem.php?id=1221
1221: 母牛生小牛
时间限制: 1 Sec 内存限制: 128 MB提交: 1 解决: 1
题目描述
设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?
输入
输入一个整数N。(1≤N≤50)
输出
第N年时母牛的数量
样例输入
5
样例输出
3
思路:明显的递归,F(n) = F(n-1)+F(n-3) 因为第n-3年出生的小牛可以生小牛啦
代码:
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<string>
#include<string.h>
#include<set>
#include<queue>
#include<stack>
#include<vector>
#include<functional>
#include<map>
using namespace std;
const int maxn = 10000 + 10;
const int INF = (int)1e9;
int n;
int fun(int x) {
if (x == 1)return 1;
if (x == 2)return 1;
if (x == 3)return 1;
if (x == 4)return 2;
else return fun(x - 1) + fun(x - 3);
}
int main()
{
while (scanf("%d", &n) != EOF) {
printf("%d\n", fun(n));
}
return 0;
}