n皇后问题Java代码
时间: 2023-04-05 09:04:44 浏览: 118
我可以回答这个问题。以下是一个n皇后问题的Java代码示例:
```
public class NQueens {
private int[] queens;
public void solve(int n) {
queens = new int[n];
placeQueen(0, n);
}
private void placeQueen(int row, int n) {
if (row == n) {
printQueens();
return;
}
for (int col = 0; col < n; col++) {
if (isValid(row, col)) {
queens[row] = col;
placeQueen(row + 1, n);
}
}
}
private boolean isValid(int row, int col) {
for (int i = 0; i < row; i++) {
int diff = Math.abs(col - queens[i]);
if (diff == 0 || diff == row - i) {
return false;
}
}
return true;
}
private void printQueens() {
for (int i = 0; i < queens.length; i++) {
for (int j = 0; j < queens.length; j++) {
if (queens[i] == j) {
System.out.print("Q ");
} else {
System.out.print(". ");
}
}
System.out.println();
}
System.out.println();
}
}
```
这个代码可以解决n皇后问题,其中n是皇后的数量。这个问题是一个经典的计算机科学问题,它要求在一个n x n的棋盘上放置n个皇后,使得它们互相不能攻击。这个问题可以用回溯算法来解决,这个代码就是一个回溯算法的实现。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)