全排列方法求解八皇后问题

来源:互联网 发布:网络禁毒知识竞赛答案 编辑:程序博客网 时间:2024/05/02 01:44


#include<iostream>using namespace std;int C[8];int res = 0;//多少组解void EightQueen(int n,int curr){if (curr == n){for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){if (C[i] == j)cout << "Q ";elsecout << "* ";}cout << endl;}return;}else{for (int i = 0; i < n; i++){C[curr] = i;//第curr行放在第i列上bool flag = true;for (int j = 0; j < curr; j++){if (C[curr] == C[j] || curr - C[curr] == j - C[j] || curr + C[curr] == j + C[j]){flag = false;break;}}if (flag){EightQueen(n, curr + 1);}}}}int main(){EightQueen(8,0);return 0;}


0 0
原创粉丝点击