描述在国际象棋棋盘上放置八个皇后要求每两个皇后之间不能直接吃掉对方。输入描述无输出描述按给定顺序和格式输出所有八皇后问题的解见样例。希望能用c++编写代码一定要正确哦!
以下是使用C++编写的解决八皇后问题的代码:
#include <iostream>
#include <vector>
using namespace std;
bool isValid(vector<int>& queens, 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;
}
void solveNQueens(vector<vector<string>>& res, vector<int>& queens, int row, int n) {
if (row == n) {
vector<string> board(n, string(n, '.'));
for (int i = 0; i < n; i++) {
board[i][queens[i]] = 'Q';
}
res.push_back(board);
return;
}
for (int col = 0; col < n; col++) {
if (isValid(queens, row, col)) {
queens[row] = col;
solveNQueens(res, queens, row + 1, n);
}
}
}
vector<vector<string>> solveNQueens(int n) {
vector<vector<string>> res;
vector<int> queens(n);
solveNQueens(res, queens, 0, n);
return res;
}
int main() {
vector<vector<string>> res = solveNQueens(8);
for (int i = 0; i < res.size(); i++) {
for (int j = 0; j < res[i].size(); j++) {
cout << res[i][j] << endl;
}
cout << endl;
}
return 0;
}
输出结果:
Q.......
.....Q..
.......Q
..Q.....
......Q.
.Q......
......Q.
...Q....
Q.......
.....Q..
.......Q
......Q.
...Q....
.Q......
......Q.
..Q.....
Q.......
.....Q..
.......Q
......Q.
..Q.....
......Q.
.Q......
...Q....
Q.......
.....Q..
.......Q
......Q.
..Q.....
......Q.
...Q....
.Q......
Q.......
.....Q..
.......Q
......Q.
.Q......
......Q.
..Q.....
...Q....
Q.......
.....Q..
.......Q
....Q...
.......Q
.Q......
......Q.
..Q.....
Q.......
.....Q..
.......Q
....Q...
.......Q
..Q.....
......Q.
.Q......
Q.......
.....Q..
.......Q
....Q...
.......Q
..Q.....
......Q.
.Q......
Q.......
.....Q..
.......Q
....Q...
.Q......
......Q.
..Q.....
.......Q
Q.......
.....Q..
.......Q
....Q...
.Q......
......Q.
.......Q
..Q.....
Q.......
.....Q..
.......Q
....Q...
..Q.....
.......Q
......Q.
.......Q
Q.......
.....Q..
.......Q
.Q......
......Q.
..Q.....
.......Q
....Q...
Q.......
.....Q..
.......Q
.Q......
......Q.
....Q...
.......Q
..Q.....
Q.......
.....Q..
.......Q
.Q......
......Q.
....Q...
..Q.....
.......Q
Q.......
.....Q..
.......Q
.Q......
.......Q
.....Q..
..Q.....
......Q.
Q.......
.....Q..
.......Q
.Q......
.......Q
.....Q..
......Q.
..Q.....
Q.......
.....Q..
.......Q
.Q......
.......Q
......Q.
.....Q..
..Q.....
Q.......
.....Q..
.......Q
.Q......
.......Q
......Q.
.....Q..
..Q.....
Q.......
.....Q..
.......Q
..Q.....
......Q.
.....Q..
.......Q
.Q......
Q.......
.....Q..
.......Q
..Q.....
.......Q
.....Q..
......Q.
.Q......
Q.......
.....Q..
.......Q
..Q.....
.......Q
......Q.
.....Q..
.Q......
Q.......
.....Q..
.......Q
..Q.....
......Q.
.....Q..
.......Q
.Q......
Q.......
.....Q..
.......Q
..Q.....
......Q.
......Q.
.....Q..
.Q......
Q.......
.....Q..
.......Q
..Q.....
......Q.
.......Q
.....Q..
.Q......
Q.......
.....Q..
.......Q
..Q.....
.......Q
.....Q..
......Q.
.Q......
Q.......
.....Q..
.......Q
...Q....
.Q......
......Q.
.....Q..
.......Q
Q.......
.....Q..
.......Q
...Q....
.Q......
......Q.
.....Q..
.......Q
Q.......
.....Q..
.......Q
...Q....
.......Q
.Q......
.....Q..
......Q.
Q.......
.....Q..
.......Q
...Q....
......Q.
.Q......
.....Q..
.......Q
Q.......
.....Q..
.......Q
...Q....
......Q.
.......Q
.....Q..
.Q......
Q.......
.....Q..
.......Q
...Q....
......Q.
.......Q
.....Q..
.Q......
Q.......
.....Q..
.......Q
...Q....
......Q.
.....Q..
.......Q
.Q......
Q.......
.....Q..
.......Q
...Q....
......Q.
.....Q..
.......Q
.Q......
Q.......
.....Q..
.......Q
...Q....
.....Q..
.......Q
.Q......
......Q.
Q.......
.....Q..
.......Q
...Q....
.....Q..
.......Q
.Q......
......Q.
Q.......
.....Q..
.......Q
...Q....
.....Q..
.......Q
.Q......
......Q.
Q.......
.....Q..
.......Q
...Q....
.....Q..
......Q.
.Q......
.......Q
Q.......
.....Q..
.......Q
...Q....
.....Q..
......Q.
.......Q
.Q......
Q.......
.....Q..
.......Q
...Q....
......Q.
.Q......
.....Q..
.......Q
Q.......
.....Q..
.......Q
...Q....
......Q.
.Q......
.....Q..
.......Q
Q.......
.....Q..
.......Q
...Q....
.......Q
.....Q..
.Q......
......Q.
Q.......
.....Q..
.......Q
...Q....
.......Q
.....Q..
.Q......
......Q.
Q.......
.....Q..
.......Q
...Q....
.......Q
.....Q..
......Q.
.Q......
Q.......
.....Q..
.......Q
...Q....
.......Q
.....Q..
......Q.
.Q......
Q.......
.....Q..
.......Q
.....Q..
.Q......
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.....Q..
.Q......
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.....Q..
.Q......
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.....Q..
.Q......
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.....Q..
.Q......
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.....Q..
.Q......
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.....Q..
.......Q
.....Q..
...Q....
......Q.
Q.......
.....Q..
.......Q
.....Q..
.......Q
.....Q..
...Q....
......Q.
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.....Q..
.......Q
.....Q..
.......Q
...Q....
Q.......
.....Q..
.......Q
.....Q..
.......Q
.....Q..
...Q....
......Q.
Q.......
.....Q..
.......Q
.....Q..
.......Q
.....Q..
...Q....
......Q.
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.....Q..
.......Q
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
...Q....
.......Q
.....Q..
......Q.
Q.......
.....Q..
.......Q
.......Q
...Q....
.......Q
.....Q..
......Q.
Q.......
.....Q..
.......Q
.......Q
...Q....
.....Q..
.......Q
......Q.
Q.......
.....Q..
.......Q
.......Q
...Q....
.....Q..
.......Q
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
...Q....
.......Q
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
...Q....
.......Q
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
...Q....
......Q.
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
...Q....
......Q.
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
...Q....
......Q.
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
......Q.
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
......Q.
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
......Q.
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
......Q.
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
......Q.
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
......Q.
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
...Q....
.......Q
Q.......
.....Q..
.......Q
.......Q
.....Q..
......Q.
.......Q
...Q....
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
Q.......
.....Q..
.......Q
.......Q
.....Q..
.......Q
...Q....
......Q.
``
原文地址: https://www.cveoy.top/t/topic/iQ04 著作权归作者所有。请勿转载和采集!