#include <iostream.h>
#include <math.h>
bool place(int row,int pos[9])// current row and current pos is avaible
{
if(row==1)
{
return true;
}
for(int i=1;i<row;i++)
{
if(pos[row]==pos[i])
return false;
if(abs(row-i)==abs(pos[row]-pos[i]))
return false;
}
if(i==row)
return true;
return true;
}
void queen(int row,int pos[9])
{
int i,j;
for(i=1;i<=8;i++)
{
pos[row]=i;
if( place(row,pos)==true )//可放置
{
if(row==8)
{
for(j=1;j<=8;j++)
{
cout<<' '<<pos[j];
}
cout<<endl;
}
else
{
queen(row+1,pos);
}
}
}
}
int main()
{
int i,k;
int pos[9];
for(i=0;i<9;i++)
pos[i]=0;
queen(1,pos);
return 0;
}
#include <math.h>
bool place(int row,int pos[9])// current row and current pos is avaible
{
if(row==1)
{
return true;
}
for(int i=1;i<row;i++)
{
if(pos[row]==pos[i])
return false;
if(abs(row-i)==abs(pos[row]-pos[i]))
return false;
}
if(i==row)
return true;
return true;
}
void queen(int row,int pos[9])
{
int i,j;
for(i=1;i<=8;i++)
{
pos[row]=i;
if( place(row,pos)==true )//可放置
{
if(row==8)
{
for(j=1;j<=8;j++)
{
cout<<' '<<pos[j];
}
cout<<endl;
}
else
{
queen(row+1,pos);
}
}
}
}
int main()
{
int i,k;
int pos[9];
for(i=0;i<9;i++)
pos[i]=0;
queen(1,pos);
return 0;
}