八皇后问题算法

本文介绍了一种解决八皇后问题的递归算法。通过在8*8的国际象棋棋盘上放置八个皇后,确保任意两个皇后不在同一行、列及对角线,探讨了所有可能的布局方案。
在国际象棋棋盘上(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 }

 

转载于:https://www.cnblogs.com/hoojjack/p/5229245.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值