可以请高手帮我配上这个八皇后问题解法的注释么,希望详尽一点,菜鸟希望完全弄懂
#include <stdio.h> #include <math.h>
int count=0;
void empress(int *position)
{
int i,j,flag;
while(position[8]!=1)
{
++position[0];
for(i=0;i<8;++i)
{
if(position[i]==8)
{
position[i]=0;
++position[i+1];
}
}
flag=1;//判断结果是否满足条件
for(i=0;i<8;++i)
{
for(j=0;j<8;++j)
{
if(i!=j)
{
if(position[i]==position[j])
flag=0;
else if(abs(position[i]-position[j])==abs(i-j))
flag=0;
}
}
}
if(flag==1)//输出#代表皇后
{
for(i=0;i<8;++i)
{
for(j=0;j<8;++j)
{
if(position[i]==j)
printf("1");
else
printf("0");
}
printf("\n");
}
printf("\n");
}
count+=flag;
}
}
int main()
{
int position[9]={0};
empress(position);
printf("%d种解\n",count);
return 0;
}