以下是八皇后问题的C++代码:

#include using namespace std;

bool check(int board[][8], int row, int col) { // 检查同列是否有皇后 for (int i = 0; i < row; i++) { if (board[i][col] == 1) { return false; } } // 检查右上方是否有皇后 for (int i = row - 1, j = col + 1; i >= 0 && j < 8; i--, j++) { if (board[i][j] == 1) { return false; } } // 检查左上方是否有皇后 for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) { if (board[i][j] == 1) { return false; } } return true; }

bool solve(int board[][8], int row) { // 所有行都放置完毕 if (row == 8) { return true; } for (int i = 0; i < 8; i++) { if (check(board, row, i)) { board[row][i] = 1; // 放置皇后 if (solve(board, row + 1)) { return true; } board[row][i] = 0; // 回溯 } } return false; // 无解 }

int main() { int board[8][8] = {0}; if (solve(board, 0)) { // 输出解法 for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { cout << board[i][j] << " "; } cout << endl; } } else { cout << "No solution." << endl; } return 0; }

八皇后c++代码

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

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