N皇后问题

来源:互联网 发布:淘宝怎么看淘龄 编辑:程序博客网 时间:2024/06/07 19:33

点击打开链接

# 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;}