八皇后问题:在一个8×8的棋盘中,放入8个皇后棋子,要求同行同列同斜线不能有重复的皇后棋子,八皇后问题一共有92种解法。如图所示:即八皇后问题的一个解。
//分治回溯算法解决八皇后问题
public class NQueen {
private static int count = 0; //表示第count个解
private static int N = 8; //表示N皇后 也表示矩阵的尺寸
private static int[][] arr = new int[N][N]; //表示矩阵
public static void main(String[] args) {
queen(0); //填入皇后棋子
}
//填入皇后棋子 row表示第几行 从第0行开始
private static void queen(int row) {
if(row == N){ //判断递归的边界条件
count++;
System.out.println("第" + count + "个解");
printArr(); //输出矩阵
}
//如果没有到边界条件 就要循环遍历当前行的全部列 向符合条件位置添加皇后
for(int col = 0; col < N; co