您的位置:首页 > 编程语言 > C语言/C++

n皇后(C++)

2015-12-22 20:03 459 查看
#include<cstdio>
int n,ans,x[20];
bool a[20],b[20],c[20];//判断列,对角线
void dfs(int k,int h)
{
if(k==n){ans++;return;}
for(int i=1;i<=n;i++)//for循环循环行
{
if(a[i]==0&&b[h+i]==0&&c[h+n-i]==0)
{
a[i]=1;b[h+i]=1;c[h+n-i]=1;
x[k+1]=i;dfs(k+1,h+1);
a[i]=0;
b[h+i]=0;
c[h+n-i]=0;
}
}
}
int main()
{
scanf("%d",&n);
dfs(0,1);
printf("%d",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: