# include<stdio.h>
# include<string.h>
int b[25],c[25],d[25],count;;
void find(int n,int cur)
{
int i;
if(cur==n)
{
count++;
return ;
}
for(i=1;i<=n;i++)
{
if(!b[i]&&!c[i+cur]&&!d[i-cur+n])
{
b[i]=1;
c[i+cur]=1;
d[i-cur+n]=1;
find(n,cur+1);
b[i]=0;
c[i+cur]=0;
d[i-cur+n]=0;
}
}
}
int main()
{
int i,n,sum[11];
for(i=1;i<11;i++)
{
count=0;
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(c));
find(i,0);
sum[i]=count;//printf("%d ",count);
}
while(scanf("%d",&n)&&n)
{
printf("%d\n",sum[n]);
}
return 0;
}
N皇后问题
最新推荐文章于 2020-07-21 11:31:42 发布