求八皇后问题的c源程序(用2维数组解决)


#include
using namespace std;
#define N 8
int x[N+1]={0};

bool place(int k)
{
int i=1;
while(i {
if(x[i]==x[k]||(abs(x[i]-x[k])==abs(i-k)))return false;
i++;
}
return true;
}

void print()
{
for(int i=1;i cout< cout<}

void nqueen(int k)
{
int count=0;
while(k>=1)
{
x[k]++;
while(x[k]<=N&&!place(k))
{
x[k]++;
}
if(x[k]<=N)
{
if(k==N)
{
count++;
cout< print();
}
else k++;
/*x[k]=0;*/
}
else x[k--]=0;
}
}

void main()
{
nqueen(1);
}

--------------------------
我这漏段个是用c++实现碰闭的
你自己返吵誉改一下吧
求八皇后问题的c源程序(用2维数组解决)
← 上一篇: 下一篇: →