八皇后问题

package com.company;

/**
 * @date on 2020/6/22 14:13
 * @author longlyboyhe
 * @filename Queen.java
 * @description 八皇后问题
 */
public class Queen {
	public static int num = 0;//累计方案
	public static final int MAXQUEEN = 8;
	public static int[] cols = new int[MAXQUEEN];//定义cols数组,表示8列棋子皇后摆放的位置

	/**
	 *
	 * @param n
	 */
	public void getCount(int n){
		boolean[] rows=new boolean[MAXQUEEN];
		//逐列递归,只需设置当前列的三个方向是冲突位置
		for (int m=0;m<n;m++){
			rows[cols[m]]=true;
			int d=n-m;
			if(cols[m]-d>=0){
				rows[cols[m]-d]=true;
			}
			if(cols[m]+d<=MAXQUEEN-1){
				rows[cols[m]+d]=true;
			}
		}
		for (int i=0;i<MAXQUEEN;i++){
			if(rows[i]){
				continue;
			}
			cols[n]=i;
			if(n<MAXQUEEN-1){
				getCount(n+1);
			}else {
				num++;
				printPlan();
			}
		}
	}

	//打印方案
	private void printPlan() {
		System.out.println("第"+num+"种方案");
		for (int i=0;i<MAXQUEEN;i++){
			for (int j=0;j<MAXQUEEN;j++){
				if(i==cols[j]){
					System.out.print("Q ");
				}else {
					System.out.print("* ");
				}
			}
			System.out.println();
		}
	}


	public static void main(String[] args){
		Queen queen = new Queen();
		queen.getCount(0);
	}
}

运行结果:

1种方案
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * * 
* * * * * Q * * 
* * Q * * * * *2种方案
Q * * * * * * * 
* * * * * * Q * 
* * * Q * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * Q * * * 
* * Q * * * * *3种方案
Q * * * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * Q * * * * * 
* * * * * * Q * 
* * * Q * * * * 
* Q * * * * * * 
* * * * Q * * *4种方案
Q * * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* * * * * Q * * 
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * Q * * * *5种方案
* * * * * Q * * 
Q * * * * * * * 
* * * * Q * * * 
* Q * * * * * * 
* * * * * * * Q 
* * Q * * * * * 
* * * * * * Q * 
* * * Q * * * *6种方案
* * * Q * * * * 
Q * * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * Q * *7种方案
* * * * Q * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * Q * *8种方案
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * * 
* * * * * Q * *9种方案
* * * * Q * * * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * *10种方案
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * Q * * *11种方案
* * * * Q * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * Q * * * *12种方案
* * * Q * * * * 
Q * * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* * * * * Q * * 
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * *13种方案
* Q * * * * * * 
* * * * * Q * * 
Q * * * * * * * 
* * * * * * Q * 
* * * Q * * * * 
* * * * * * * Q 
* * Q * * * * * 
* * * * Q * * *14种方案
* * * * Q * * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * * Q * * * *15种方案
* * * * * * * Q 
* * Q * * * * * 
Q * * * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * Q * * * 
* * * * * * Q * 
* * * Q * * * *16种方案
* * * Q * * * * 
* * * * * Q * * 
Q * * * * * * * 
* * * * Q * * * 
* Q * * * * * * 
* * * * * * * Q 
* * Q * * * * * 
* * * * * * Q *17种方案
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * Q * * * * *18种方案
* * * * * Q * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * Q * 
* * * * Q * * *19种方案
* * * * Q * * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * * 
* * * * * * Q *20种方案
* * * * * Q * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* Q * * * * * * 
* * * Q * * * * 
* * * * * * Q *21种方案
* * * Q * * * * 
* * * * * * * Q 
Q * * * * * * * 
* * Q * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q * 
* * * * Q * * *22种方案
* * * * * * * Q 
* * * Q * * * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q * 
* * * * Q * * *23种方案
* * * Q * * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * * Q * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * * 
* * Q * * * * *24种方案
* * * Q * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* Q * * * * * * 
* * * * * Q * * 
* * Q * * * * *25种方案
* * * * * Q * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * *26种方案
* * * * * Q * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * *27种方案
* * * * * * Q * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * * * Q * * * 
* Q * * * * * * 
* * * Q * * * *28种方案
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * * Q * * * * 
* Q * * * * * *29种方案
* Q * * * * * * 
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * * Q * * * *30种方案
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * Q * * * 
* * * * * * Q * 
* * * Q * * * *31种方案
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* * * Q * * * *32种方案
* * * * * * Q * 
* Q * * * * * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * Q * * * * * 
* * * * * Q * *33种方案
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * Q * * * * * 
* * * * * Q * *34种方案
* * * * Q * * * 
* Q * * * * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * Q * *35种方案
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * Q * * * * *36种方案
* * * * Q * * * 
* Q * * * * * * 
* * * * * Q * * 
Q * * * * * * * 
* * * * * * Q * 
* * * Q * * * * 
* * * * * * * Q 
* * Q * * * * *37种方案
* * Q * * * * * 
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * *38种方案
* * * * * Q * * 
* * * Q * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * Q * * * 
* * Q * * * * *39种方案
* * * * Q * * * 
* * * * * * * Q 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * * 
* * Q * * * * *40种方案
* * Q * * * * * 
* * * * * Q * * 
* * * * * * * Q 
Q * * * * * * * 
* * * * Q * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * Q * * * *41种方案
* * * * * * Q * 
* * * * Q * * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * *42种方案
* * * * * Q * * 
* * * Q * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * Q * * * 
* Q * * * * * * 
* * * * * * * Q 
第43种方案
* * * * Q * * * 
* * * * * * * Q 
* * * Q * * * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q *44种方案
* * Q * * * * * 
* * * * * Q * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * * * * * Q * 
* Q * * * * * *45种方案
* * Q * * * * * 
* * * * * Q * * 
* * * * * * * Q 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * Q * 
* * * * Q * * * 
* Q * * * * * *46种方案
* * * * Q * * * 
* * * * * * Q * 
* * * Q * * * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* Q * * * * * *47种方案
* Q * * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * Q * * * * * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * Q * 
* * * * Q * * *48种方案
* Q * * * * * * 
* * * * Q * * * 
* * * * * * Q * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * Q * * * * *49种方案
* Q * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * Q * * * * 
* * * * * Q * * 
* * Q * * * * *50种方案
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * * 
* * Q * * * * * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * * Q 
* * * * Q * * *51种方案
* * * * * * * Q 
* Q * * * * * * 
* * * * Q * * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * Q * * * * 
* * * * * Q * *52种方案
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * Q * * * 
* * * * * * Q *53种方案
* * * Q * * * * 
* Q * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * Q * * * * *54种方案
* * Q * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * * Q 
* * * * Q * * *55种方案
* * Q * * * * * 
* * * * Q * * * 
* Q * * * * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * * * * Q * 
* * * Q * * * * 
* * * * * Q * *56种方案
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * Q * * * * *57种方案
* * Q * * * * * 
* * * * * * * Q 
* * * Q * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * Q * * *58种方案
* * Q * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * *59种方案
* * * * * Q * * 
* * Q * * * * * 
* * * * * * Q * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * Q * * *60种方案
* * * * * Q * * 
* * Q * * * * * 
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
第61种方案
* * * * * Q * * 
* * Q * * * * * 
* * * * Q * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * Q *62种方案
* * * Q * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * *63种方案
* * * Q * * * * 
* * * * * * Q * 
* * * * Q * * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * *64种方案
* * * Q * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
* Q * * * * * *65种方案
* Q * * * * * * 
* * * Q * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * *66种方案
* * * Q * * * * 
* Q * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
* * * * * Q * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * * Q *67种方案
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * Q * *68种方案
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * Q * *69种方案
* * Q * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * * * * Q * 
* * * Q * * * *70种方案
* * Q * * * * * 
* * * * * Q * * 
* Q * * * * * * 
* * * * * * Q * 
* * * * Q * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * Q * * * *71种方案
* * * * Q * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * * 
* * Q * * * * * 
Q * * * * * * * 
* * * Q * * * * 
* * * * * * * Q 
第72种方案
* * * * Q * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * Q * * 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * * Q 
* * * Q * * * *73种方案
* * * * * * Q * 
* * * Q * * * * 
* Q * * * * * * 
* * * * Q * * * 
* * * * * * * Q 
Q * * * * * * * 
* * Q * * * * * 
* * * * * Q * *74种方案
* * * * * * Q * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * Q * * *75种方案
* * * * Q * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * Q * * * * 
* * * * * * * Q 
Q * * * * * * * 
* * Q * * * * * 
* * * * * Q * *76种方案
* * Q * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * * * Q * 
* * * * Q * * *77种方案
* * * * * * Q * 
* * Q * * * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * Q * * * 
Q * * * * * * * 
* * * * * Q * * 
* * * Q * * * *78种方案
* * * Q * * * * 
* * * * * * Q * 
* * * * Q * * * 
* Q * * * * * * 
* * * * * Q * * 
Q * * * * * * * 
* * Q * * * * * 
* * * * * * * Q 
第79种方案
* * * Q * * * * 
* * * * * Q * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * * 
* * * * Q * * *80种方案
* * * * Q * * * 
* * Q * * * * * 
* * * * * * * Q 
* * * Q * * * * 
* * * * * * Q * 
Q * * * * * * * 
* * * * * Q * * 
* Q * * * * * *81种方案
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * * * Q * * * 
Q * * * * * * * 
* * * Q * * * *82种方案
* * * Q * * * * 
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * Q * * 
* * * * * * * Q 
Q * * * * * * * 
* * * * Q * * *83种方案
* * * * Q * * * 
* Q * * * * * * 
* * * Q * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * Q * * * * * 
Q * * * * * * * 
* * * * * * Q *84种方案
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * * Q * * * * 
Q * * * * * * * 
* * * * Q * * *85种方案
* * * * * Q * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 
* * Q * * * * *86种方案
* * * * * Q * * 
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * Q * * * * 
* * * * * * * Q 
Q * * * * * * * 
* * * * Q * * *87种方案
* * * * * Q * * 
* * Q * * * * * 
* * * * * * Q * 
* Q * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
Q * * * * * * * 
* * * Q * * * *88种方案
* * * Q * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * * * Q 
* Q * * * * * * 
* * * * Q * * * 
Q * * * * * * * 
* * * * * Q * *89种方案
* * * Q * * * * 
* Q * * * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * Q * * 
* * * * * * * Q 
* * * * Q * * * 
Q * * * * * * *90种方案
* * * * Q * * * 
* Q * * * * * * 
* * * Q * * * * 
* * * * * * Q * 
* * Q * * * * * 
* * * * * * * Q 
* * * * * Q * * 
Q * * * * * * *91种方案
* * Q * * * * * 
* * * * Q * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * * Q * * 
* * * Q * * * * 
* * * * * * Q * 
Q * * * * * * *92种方案
* * Q * * * * * 
* * * * * Q * * 
* * * Q * * * * 
* Q * * * * * * 
* * * * * * * Q 
* * * * Q * * * 
* * * * * * Q * 
Q * * * * * * * 

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值