package com.shiyan1;
public class EightQ {
public static void main(String[] args) {
EightQ queen=new EightQ();
}
public static int countNum=0;//方案数
public static int queenNum=8;//皇后数(矩阵行列数)
public static int cols[]=new int[queenNum];//定义摆法
public EightQ(){
getArrangement(0);
//System.out.println("/n");
System.out.println(queenNum+"皇后问题有"+countNum+"摆法!");
}
private void getArrangement(int n) {
// TODO Auto-generated method stub
//遍历该列所有不合法的行,并用rows数组记录,不合法记row[i]=true;
boolean rows[]=new boolean[queenNum];
for(int i=0;i<n;i++){
rows[cols[i]]=true;
int d=n-i;
if(cols[i]-d>=0){
rows[cols[i]-d]=true;
}
if(cols[i]+d<=queenNum-1){
rows[cols[i]+d]=true;
}
}
for(int i=0;i<queenNum;i++)
算法试验8皇后问题-回溯法 PS参考了百度的一些大神的思路
最新推荐文章于 2023-06-13 21:58:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)