#include<stdio.h>
int tot=0;
int c[10];
int n;
void search(int cur){
if(cur==n) tot++;
else for(int i=0;i<n;i++)
{
int ok=1;
c[cur]=i;
for(int j=0;j<cur;j++)
{
if(c[cur]==c[j]||cur-c[cur]==j-c[j]||cur+c[cur]==j+c[j])
{
ok=0;break;
}
}
if(ok) search(cur+1);
}
}
int main()
{
scanf("%d",&n);
search(0);
printf("%d\n",tot);
}
八皇后问题(回溯)
最新推荐文章于 2024-09-19 10:22:55 发布