#include<stdio.h>
int des[8][8],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(!des[n][i]&&!lie[i]&&!d1[n+i]&&!d2[n-i+7]){
des[n][i]=1;
lie[i]=1;
d1[n+i]=1;
d2[n-i+7]=1;
dfs(n+1);
des[n][i]=0;
lie[i]=0;
d1[n+i]=0;
d2[n-i+7]=0;
}
}
if(i!=8){
return ;
}
}
int main(){
dfs(0);
printf("%d",count);
return 0;
}
八皇后问题(无考虑对称解)
猜你喜欢
转载自blog.csdn.net/qq_43320728/article/details/104621788
今日推荐
周排行