N皇后种数

来源:互联网 发布:协和医院整形外科 知乎 编辑:程序博客网 时间:2024/06/05 20:24
#include<stdio.h>#include<stdlib.h>#include<string.h>int c[20], n, cnt=0;void dfs(int r){    int i,j,ok;    if(r == n)    {        ++cnt;        return;    }    for(i=0; i<n; ++i)    {        c[r] = i;        ok = 1;        for(j=0; j<r; ++j)            if(c[r]==c[j] || r-j==c[r]-c[j] || r-j==c[j]-c[r])            {                ok = 0;                break;            }        if(ok)        {            dfs(r+1);            c[r]=0;        }    }}int main(){    while(~scanf("%d",&n))    {        if(n==0||n>10) break;        cnt=0;        dfs(0);        printf("%d\n",cnt);    }    return 0;}

0 0
原创粉丝点击