n皇后问题
//n皇后问题递归 #include <iostream> #include <cmath> using namespace std; int queen[100]; int n; void Nqueen(int k){ int i; if(k==n){//n个皇后已经摆好 for(i=0;i<n;i++) { cout<<queen[i]+1<<" "; } cout<<endl; return; } for(i=0;i<n;i++){//逐个尝试第k行皇后的位置 int j=0; for(j=0;j<k;j++)//和已经摆好的前k行皇后比较 { if(queen[j]==i||abs(queen[j]-i)==abs(k-j)) {break;} } if(j==k)//如果没有冲突 { queen[k]=i; Nqueen(k+1); } } } int main(){ cin>>n; Nqueen(0); }
本文来自博客园,作者:坤k,转载请注明原文链接:https://www.cnblogs.com/fukunwang/p/15677360.html