题目描述
一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续3个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。现在,请你计算:对于给定的N,求不发生爆炸的放置核物质的方案总数。
输入
输入文件只有多行,每行对应一个正整数N<=40;
输出
输出文件有多行,每行只有一个正整数,表示方案总数
样例输入 Copy
1
2
3
4
10
样例输出 Copy
2
4
7
13
504
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()){
int N = in.nextInt();
int search = search(0, 0, N);
System.out.println(search);
}
}
public static int search(int count,int sum,int N){
int total = 0;
if (sum==N-1) {
if (count<2){
return 2;
}
else {
return 1;
}
}
sum++;
if (count<2){
total+= search(++count,sum,N);
}
total+= search(0,sum,N);
return total;
}
}
本文探讨了一种防止连续三个坑放置核物质导致爆炸的算法。通过递归搜索,计算了不同坑数量下安全放置核物质的方案总数,提供了一个解决实际问题的数学模型。
1057

被折叠的 条评论
为什么被折叠?



