链接:点击打开链接
1218: 核电站问题
时间限制: 1 Sec 内存限制: 128 MB提交: 1 解决: 1
题目描述
一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续3个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。现在,请你计算:对于给定的N,求不发生爆炸的放置核物质的方案总数。
输入
输入文件只有多行,每行对应一个正整数N<=40;
输出
输出文件有多行,每行只有一个正整数,表示方案总数
样例输入
1
2
3
4
10
样例输出
2
4
7
13
504
思路:一看题又以为是搜索,还好又仔细思考了,简单递推
第n个位置与第n-1、n-2、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 2;
if (x == 2)return 4;
if (x == 3)return 7;
else return(fun(x - 1) + fun(x - 2)+fun(x-3));
}
int main()
{
while (scanf("%d", &n) != EOF) {
printf("%d\n", fun(n));
}
return 0;
}