#include "stdio.h" #include "math.h" int queen[11]={0},coun; void DFS(int num); int check(int p); int main() { coun=0; DFS(0); printf("%d\n",coun); return 0; } void DFS(int num) { int p; if(num==8) { coun++; return ; } for(p=0;p<8;p++) { queen[num]=p; //用一维数组存皇后摆放的位置 if(!check(num)) DFS(num+1); } return ; } int check(int num) { int i; for(i=0;i<num;i++) { if(fabs(queen[i]-queen[num])==fabs(num-i) || queen[i]==queen[num]) //遍历已摆放好的皇后,看两个皇后间是否会有冲突。 return 1; } return 0; }
八皇后问题,一维数组实现
原文作者:ruo_yu
原文地址: https://www.cnblogs.com/ruo-yu/p/4412100.html
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://www.cnblogs.com/ruo-yu/p/4412100.html
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。