代码转自郭炜老师讲义:
#include<iostream>
using namespace std;
int N;
int queenPos[100];
void NQueen(int k)
{
int i=0;
if(k==N)
{
for(i=0;i<N;i++)
{
cout<<queenPos[i]+1<<" ";
}
cout<<endl;
return;
}
for(i=0;i<N;i++)
{
int j=0;
for(j=0;j<k;j++)
{
if((queenPos[j]==i)||(abs(queenPos[j]-i)==abs(k-j)))
{
break;
}
}
if(j==k)
{
queenPos[k]=i;
NQueen(k+1);
}
}
}
int main()
{
cin>>N;
NQueen(0);
return 0;
}