#include<stdio.h>
#include<stdlib.h>
int x[100];
int place(int k){
int i=1;
while(i<k){
if(x[i]==x[k] || abs(k-i)==abs(x[k]-x[i]))
return 0;
i++;
}
return 1;
}
void nQueens(int n){
x[1]=0;
int k=1;
int i;
while(k>0){
x[k]++;
while(x[k]<=n && 0==place(k))
x[k]++;
if(x[k]<=n){
if(k==n){
for(i=1;i<=n;i++){
printf("%d ",x[i]);
}
printf("\n");
}
else{
k++;
x[k]=0;
}
}
else{
k--;
}
}
}
int main(){
int n;
scanf("%d",&n);
nQueens(n);
return 0;
}
n皇后
最新推荐文章于 2024-04-18 08:15:00 发布