以下是使用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. 
``
描述在国际象棋棋盘上放置八个皇后要求每两个皇后之间不能直接吃掉对方。输入描述无输出描述按给定顺序和格式输出所有八皇后问题的解见样例。希望能用c++编写代码一定要正确哦!

原文地址: https://www.cveoy.top/t/topic/iQ04 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录