#include <iostream>
#include <cmath>
using namespace std;
int search(int m);
int a[20];
int canplace (int row,int col);
void output();
int main()
{
search(0);
}
int search( int m)
{
int i;
if(m==8)
{
output();
}
else
{
for(i=0;i<8;i++)
{
if(canplace(m,i))
{
a[m]=i;
search(m+1);
}
}
}
}
int canplace(int row,int col)
{
int i,flag;
flag=1;
for(i=0;i<row;i++)
{
if(a[i]==col||abs(row-i)==abs(col-a[i]))
{
flag=0;
break;
}
}
return (flag);
}
void output()
{
int i,j;
for(i=0;i<8;i++)
{
//cout<<a[i];
for(j=0;j<8;j++)
if(a[i]==j)
{
cout<<"o";
}
else
{
cout<<"X";
}
cout<<endl;
}
cout<<endl;
}
评论