八皇后问题算法

在国际象棋棋盘上(8*8)放置八个皇后,使得任意两个皇后之间不能在同一行,同一列,也不能位于同于对角线上。问共有多少种不同的方法,并且指出各种不同的放法

1
int WeiZhi[8];//记录皇后所在位置 2 3 void EightQueen(int n){ 4 int i,j; 5 int ct; 6 if(n==8){ 7 Output(); 8 return; 9 } 10 for(i=0;i<8;i++){ 11 WeiZhi[n]=i; //在该行的第i列上放着 12 ct=1; 13 for(j=0;j<n;j++){ 14 if(WeiZhi[j]==WeiZhi[n]) //列上形成攻击 15 ct=0; 16 else if(WeiZhi[j]-WeiZhi[n]==(n-j)) //对角线上形成攻击 17 ct=0; 18 else{ 19 20 } 21 } 22 } 23 if(ct==1) 24 EightQueen(n+1); 25 }

 

你可能感兴趣的:(八皇后问题算法)