java 八皇后问题代码
时间: 2024-06-11 21:01:08 浏览: 9
以下是Java实现八皇后问题的代码:
```java
public class EightQueens {
private static final int SIZE = 8; // 棋盘大小
private static int[] queens = new int[SIZE]; // 存放皇后的位置
public static void main(String[] args) {
solve(0); // 从第一行开始放置皇后
}
private static void solve(int row) {
if (row == SIZE) { // 所有皇后都已经放置好
printQueens();
return;
}
for (int col = 0; col < SIZE; col++) {
if (isValid(row, col)) { // 判断当前位置是否可以放置皇后
queens[row] = col; // 放置皇后
solve(row + 1); // 继续放置下一行的皇后
}
}
}
private static boolean isValid(int row, int col) {
for (int i = 0; i < row; i++) {
if (queens[i] == col || queens[i] - col == i - row || queens[i] - col == row - i) {
// 判断是否与之前的皇后冲突(同一列、同一对角线)
return false;
}
}
return true;
}
private static void printQueens() {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
if (queens[i] == j) {
System.out.print("Q ");
} else {
System.out.print(". ");
}
}
System.out.println();
}
System.out.println();
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)