【发布时间】:2019-10-17 21:07:48
【问题描述】:
我正在处理一个问题并想生成一个特定的模式 这是
1000
1100
1110
1111
0100
0110
0111
0010
0011
0001
使用递归和 for 循环,但是当我编写代码时,它在线程“main”java.lang.StackOverflowError 中给了我一个异常
public class NQueenProblem {
final static int N = 8;
void printSolution(int board[][])
{
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
System.out.print(" "+board[i][j]+" ");
System.out.println();
}
}
void solveNQUtil(int board[][], int col)
{
for (int i = 0; i < N; i++) {
solveNQUtil(board, col + 1);
}
}
public static void main(String[] args) {
NQueenProblem Queen = new NQueenProblem();
int board[][] = new int[N][N];
Queen.solveNQUtil(board, 0);
}
}
【问题讨论】:
-
solveNQUtil无限调用自己。 -
@Ruzihm 你会推荐什么?
-
只是为了生成不需要此代码的模式,您可以看到最右边的位通过反转连续移动到最左边的位置。
标签: java algorithm backtracking array-algorithms