八皇后 递归算法经典问题 下面实现供大家学习
#include <stdio.h>
#include <stdlib.h>
void tryn(int n);
static bool a[8],b[16],c[16];
int x[8];
void main()
{
for(int i=0;i<8;i++)
a[i]=true;
for(int i=0;i<15;i++)
{
b[i]=true;
c[i]=true;
}
tryn(0);
}
void tryn(int n)
{
int i=n;
int j;
if(i==8)
{
for(int z=0;z<8;z++)
{
printf("%d",x[z]);
}
printf("/n");
}
for(j=0;j<8;j++)
{
if(a[j]==true)
if(b[i+j]==true)
if(c[7+(j-i)]==true)
{
x[i]=j;
a[j]=false;
b[i+j]=false;
c[7+(j-i)]=false;
tryn(i+1);
a[j]=true;
b[i+j]=true;
c[7+(j-i)]=true;
}
}
}