递归——八皇后问题(Java源代码)

public class Main {
/*
* 问题描述:
* 八皇后问题:在8*8的国际象棋上摆放8个皇后,使其不能相互攻击,即八个皇后不能
* 处于同一行,同一列,或者同一斜线
* 问:一共有多少种解法(92)
/
/

* 问题思路:
* 本来要通过创建一个2维数组分别表示8个皇后的位。
* 这里进行优化,创建一个int[] val=new int[8] 一维数组
* val[0]=0,表示第(0+1)个皇后在第(0+1)列
*
*/
public static void main(String[] args) {
Queen8 queen=new Queen8();
queen.cheek(0);
System.out.println(“一共有”+Queen8.count+“种摆列的方法”);
}
}

class Queen8{
public int max=8;//皇后的个数
public int[] array=new int[8];//用来存放8个皇后的位置
public static int count=0;//用来计算八皇后问题一共有多少种解法

//当满足8皇后摆放的条件时,输入
public void print() {
	count++;
	for(int i=0;i

}

结果:
递归——八皇后问题(Java源代码)_第1张图片

你可能感兴趣的:(递归——八皇后问题(Java源代码))