代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,sum;
bool ma[15][15];
void print(){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) if(ma[i][j]) cout<<j<<' ';
cout<<endl;
}
bool real(int x,int y){
//if(use[x][y]) return 0;
for(int i=1;i<x;i++) if(ma[i][y]) return 0;
for(int i=1;i<x;i++)
for(int j=1;j<=n;j++){
if(ma[i][j]&&i+y==j+x) return 0;
if(ma[i][j]&&x-i==j-y) return 0;
}
return 1;
}
void dfs(int num){
if(num>n){
sum++;
if(sum<=3)
print();
return ;
}
for(int i=1;i<=n;i++)
if(real(num,i)){
ma[num][i]=1;
dfs(num+1);
ma[num][i]=0;
}
}
int main(){
cin>>n;
dfs(0);
cout<<sum;
return 0;
}