#include<iostream>
#include<cstring>
using namespace std;
#define MAX 8
int queen_array[MAX][MAX];
static int NUM=0;
void print()
{
int i,j;
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
cout<<queen_array[i][j]<<" ";
cout<<endl;
}
}
bool check(int row,int col)
{
int i,j;
for(i=row-1,j=col;i>=0;i--)
if(1==queen_array[i][j]) return false;
for(i=row-1,j=col-1;i>=0&&j>=0;i--,j--)
if(1==queen_array[i][j]) return false;
for(i=row-1,j=col+1;i>=0&&j<MAX;i--,j++)
if(1==queen_array[i][j]) return false;
return true;
}
void put(int row,int col)
{
if(check(row,col))
{
queen_array[row][col]=1;
if(row>=MAX-1)
{
NUM++;
cout<<"the "<<NUM<<" method:"<<endl;
print();
cout<<"***************************"<<endl;
}
else
{
put(row+1,0);
}
queen_array[row][col]=0;
}
if(col<MAX-1) put(row,col+1);
}
int main()
{
memset(queen_array,0,sizeof(int)*MAX*MAX);
put(0,0);
return 1;
}
八皇后源码
最新推荐文章于 2021-05-22 15:56:09 发布