#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAX = 8;
vector<int> board(MAX);
//board[i]是横坐标
//i是纵坐标
void show_result() {
for(size_t i = 0;i < board.size(); i++) {
cout << "(" << i << "," << board[i] << ")";
}
cout << endl;
}
int check_cross() {
for(size_t i = 0; i < board.size(); i++) {
for(size_t j = i+1; j < board.size(); j++) {
if((j-i) == (size_t)abs(board[i]-board[j])) {
return 1;
}
}
}
return 0;
}
void put_chess() {
while(next_permutation(board.begin(), board.end())) {
if(!check_cross()) {
show_result();
}
}
}
int main() {
for(size_t i = 0; i < board.size(); i++) {
board[i] = i;
}
put_chess();
return 0;
}
eight_queens
最新推荐文章于 2022-05-10 22:11:08 发布