#include<stdio.h>
int lie[8],d1[15],d2[15];//d1记录上对角线,d2记录下对角线
int count;
void dfs(int n){
if(n==8){count++;return ;}
int i=0;
for(i;i<8;i++){
if(!lie[i]&&!d1[n+i]&&!d2[n-i+7]){
lie[i]=1;
d1[n+i]=1;
d2[n-i+7]=1;
dfs(n+1);
lie[i]=0;
d1[n+i]=0;
d2[n-i+7]=0;
}
}
}
int main(){
dfs(0);
printf("%d",count);
return 0;
}
八皇后问题(无考虑对称解)
最新推荐文章于 2020-12-17 00:52:26 发布