规姝

#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;
}

评论