【递归】八皇后问题

public class EightQueen {
	static int columnForRow[] = new int [8];
	public static boolean check(int row){
		for(int i=0; i<row; i++){
			int diff = Math.abs(columnForRow[row]-columnForRow[i]);
			if(diff==0 || diff==(row-i)){
				return false;
			}
		}
		return true;
	}
	
	public static void PlaceQueen(int row){
		if(row==8){
			printBoard();
			return;
		}
		for(int i=0;i<8;i++){
			columnForRow[row]=i;
			if(check(row)){
				PlaceQueen(row+1);
			}
		}
	}
	public static void printBoard(){
		System.out.println("The arrangement:");
		for(int i=0;i<8;i++){
			System.out.println("("+i+","+columnForRow[i]+")");
		}
	}
	public static void main(String[] args){
		PlaceQueen(0);
	}
}

输出结果:

The arrangement:
(0,0)
(1,4)
(2,7)
(3,5)
(4,2)
(5,6)
(6,1)
(7,3)
The arrangement:
(0,0)
(1,5)
(2,7)
(3,2)
(4,6)
(5,3)
(6,1)
(7,4)
The arrangement:
(0,0)
(1,6)
(2,3)
(3,5)
(4,7)
(5,1)
(6,4)
(7,2)
The arrangement:
(0,0)
(1,6)
(2,4)
(3,7)
(4,1)
(5,3)
(6,5)
(7,2)
The arrangement:
(0,1)
(1,3)
(2,5)
(3,7)
(4,2)
(5,0)
(6,6)
(7,4)
The arrangement:
(0,1)
(1,4)
(2,6)
(3,0)
(4,2)
(5,7)
(6,5)
(7,3)
The arrangement:
(0,1)
(1,4)
(2,6)
(3,3)
(4,0)
(5,7)
(6,5)
(7,2)
The arrangement:
(0,1)
(1,5)
(2,0)
(3,6)
(4,3)
(5,7)
(6,2)
(7,4)
The arrangement:
(0,1)
(1,5)
(2,7)
(3,2)
(4,0)
(5,3)
(6,6)
(7,4)
The arrangement:
(0,1)
(1,6)
(2,2)
(3,5)
(4,7)
(5,4)
(6,0)
(7,3)
The arrangement:
(0,1)
(1,6)
(2,4)
(3,7)
(4,0)
(5,3)
(6,5)
(7,2)
The arrangement:
(0,1)
(1,7)
(2,5)
(3,0)
(4,2)
(5,4)
(6,6)
(7,3)
The arrangement:
(0,2)
(1,0)
(2,6)
(3,4)
(4,7)
(5,1)
(6,3)
(7,5)
The arrangement:
(0,2)
(1,4)
(2,1)
(3,7)
(4,0)
(5,6)
(6,3)
(7,5)
The arrangement:
(0,2)
(1,4)
(2,1)
(3,7)
(4,5)
(5,3)
(6,6)
(7,0)
The arrangement:
(0,2)
(1,4)
(2,6)
(3,0)
(4,3)
(5,1)
(6,7)
(7,5)
The arrangement:
(0,2)
(1,4)
(2,7)
(3,3)
(4,0)
(5,6)
(6,1)
(7,5)
The arrangement:
(0,2)
(1,5)
(2,1)
(3,4)
(4,7)
(5,0)
(6,6)
(7,3)
The arrangement:
(0,2)
(1,5)
(2,1)
(3,6)
(4,0)
(5,3)
(6,7)
(7,4)
The arrangement:
(0,2)
(1,5)
(2,1)
(3,6)
(4,4)
(5,0)
(6,7)
(7,3)
The arrangement:
(0,2)
(1,5)
(2,3)
(3,0)
(4,7)
(5,4)
(6,6)
(7,1)
The arrangement:
(0,2)
(1,5)
(2,3)
(3,1)
(4,7)
(5,4)
(6,6)
(7,0)
The arrangement:
(0,2)
(1,5)
(2,7)
(3,0)
(4,3)
(5,6)
(6,4)
(7,1)
The arrangement:
(0,2)
(1,5)
(2,7)
(3,0)
(4,4)
(5,6)
(6,1)
(7,3)
The arrangement:
(0,2)
(1,5)
(2,7)
(3,1)
(4,3)
(5,0)
(6,6)
(7,4)
The arrangement:
(0,2)
(1,6)
(2,1)
(3,7)
(4,4)
(5,0)
(6,3)
(7,5)
The arrangement:
(0,2)
(1,6)
(2,1)
(3,7)
(4,5)
(5,3)
(6,0)
(7,4)
The arrangement:
(0,2)
(1,7)
(2,3)
(3,6)
(4,0)
(5,5)
(6,1)
(7,4)
The arrangement:
(0,3)
(1,0)
(2,4)
(3,7)
(4,1)
(5,6)
(6,2)
(7,5)
The arrangement:
(0,3)
(1,0)
(2,4)
(3,7)
(4,5)
(5,2)
(6,6)
(7,1)
The arrangement:
(0,3)
(1,1)
(2,4)
(3,7)
(4,5)
(5,0)
(6,2)
(7,6)
The arrangement:
(0,3)
(1,1)
(2,6)
(3,2)
(4,5)
(5,7)
(6,0)
(7,4)
The arrangement:
(0,3)
(1,1)
(2,6)
(3,2)
(4,5)
(5,7)
(6,4)
(7,0)
The arrangement:
(0,3)
(1,1)
(2,6)
(3,4)
(4,0)
(5,7)
(6,5)
(7,2)
The arrangement:
(0,3)
(1,1)
(2,7)
(3,4)
(4,6)
(5,0)
(6,2)
(7,5)
The arrangement:
(0,3)
(1,1)
(2,7)
(3,5)
(4,0)
(5,2)
(6,4)
(7,6)
The arrangement:
(0,3)
(1,5)
(2,0)
(3,4)
(4,1)
(5,7)
(6,2)
(7,6)
The arrangement:
(0,3)
(1,5)
(2,7)
(3,1)
(4,6)
(5,0)
(6,2)
(7,4)
The arrangement:
(0,3)
(1,5)
(2,7)
(3,2)
(4,0)
(5,6)
(6,4)
(7,1)
The arrangement:
(0,3)
(1,6)
(2,0)
(3,7)
(4,4)
(5,1)
(6,5)
(7,2)
The arrangement:
(0,3)
(1,6)
(2,2)
(3,7)
(4,1)
(5,4)
(6,0)
(7,5)
The arrangement:
(0,3)
(1,6)
(2,4)
(3,1)
(4,5)
(5,0)
(6,2)
(7,7)
The arrangement:
(0,3)
(1,6)
(2,4)
(3,2)
(4,0)
(5,5)
(6,7)
(7,1)
The arrangement:
(0,3)
(1,7)
(2,0)
(3,2)
(4,5)
(5,1)
(6,6)
(7,4)
The arrangement:
(0,3)
(1,7)
(2,0)
(3,4)
(4,6)
(5,1)
(6,5)
(7,2)
The arrangement:
(0,3)
(1,7)
(2,4)
(3,2)
(4,0)
(5,6)
(6,1)
(7,5)
The arrangement:
(0,4)
(1,0)
(2,3)
(3,5)
(4,7)
(5,1)
(6,6)
(7,2)
The arrangement:
(0,4)
(1,0)
(2,7)
(3,3)
(4,1)
(5,6)
(6,2)
(7,5)
The arrangement:
(0,4)
(1,0)
(2,7)
(3,5)
(4,2)
(5,6)
(6,1)
(7,3)
The arrangement:
(0,4)
(1,1)
(2,3)
(3,5)
(4,7)
(5,2)
(6,0)
(7,6)
The arrangement:
(0,4)
(1,1)
(2,3)
(3,6)
(4,2)
(5,7)
(6,5)
(7,0)
The arrangement:
(0,4)
(1,1)
(2,5)
(3,0)
(4,6)
(5,3)
(6,7)
(7,2)
The arrangement:
(0,4)
(1,1)
(2,7)
(3,0)
(4,3)
(5,6)
(6,2)
(7,5)
The arrangement:
(0,4)
(1,2)
(2,0)
(3,5)
(4,7)
(5,1)
(6,3)
(7,6)
The arrangement:
(0,4)
(1,2)
(2,0)
(3,6)
(4,1)
(5,7)
(6,5)
(7,3)
The arrangement:
(0,4)
(1,2)
(2,7)
(3,3)
(4,6)
(5,0)
(6,5)
(7,1)
The arrangement:
(0,4)
(1,6)
(2,0)
(3,2)
(4,7)
(5,5)
(6,3)
(7,1)
The arrangement:
(0,4)
(1,6)
(2,0)
(3,3)
(4,1)
(5,7)
(6,5)
(7,2)
The arrangement:
(0,4)
(1,6)
(2,1)
(3,3)
(4,7)
(5,0)
(6,2)
(7,5)
The arrangement:
(0,4)
(1,6)
(2,1)
(3,5)
(4,2)
(5,0)
(6,3)
(7,7)
The arrangement:
(0,4)
(1,6)
(2,1)
(3,5)
(4,2)
(5,0)
(6,7)
(7,3)
The arrangement:
(0,4)
(1,6)
(2,3)
(3,0)
(4,2)
(5,7)
(6,5)
(7,1)
The arrangement:
(0,4)
(1,7)
(2,3)
(3,0)
(4,2)
(5,5)
(6,1)
(7,6)
The arrangement:
(0,4)
(1,7)
(2,3)
(3,0)
(4,6)
(5,1)
(6,5)
(7,2)
The arrangement:
(0,5)
(1,0)
(2,4)
(3,1)
(4,7)
(5,2)
(6,6)
(7,3)
The arrangement:
(0,5)
(1,1)
(2,6)
(3,0)
(4,2)
(5,4)
(6,7)
(7,3)
The arrangement:
(0,5)
(1,1)
(2,6)
(3,0)
(4,3)
(5,7)
(6,4)
(7,2)
The arrangement:
(0,5)
(1,2)
(2,0)
(3,6)
(4,4)
(5,7)
(6,1)
(7,3)
The arrangement:
(0,5)
(1,2)
(2,0)
(3,7)
(4,3)
(5,1)
(6,6)
(7,4)
The arrangement:
(0,5)
(1,2)
(2,0)
(3,7)
(4,4)
(5,1)
(6,3)
(7,6)
The arrangement:
(0,5)
(1,2)
(2,4)
(3,6)
(4,0)
(5,3)
(6,1)
(7,7)
The arrangement:
(0,5)
(1,2)
(2,4)
(3,7)
(4,0)
(5,3)
(6,1)
(7,6)
The arrangement:
(0,5)
(1,2)
(2,6)
(3,1)
(4,3)
(5,7)
(6,0)
(7,4)
The arrangement:
(0,5)
(1,2)
(2,6)
(3,1)
(4,7)
(5,4)
(6,0)
(7,3)
The arrangement:
(0,5)
(1,2)
(2,6)
(3,3)
(4,0)
(5,7)
(6,1)
(7,4)
The arrangement:
(0,5)
(1,3)
(2,0)
(3,4)
(4,7)
(5,1)
(6,6)
(7,2)
The arrangement:
(0,5)
(1,3)
(2,1)
(3,7)
(4,4)
(5,6)
(6,0)
(7,2)
The arrangement:
(0,5)
(1,3)
(2,6)
(3,0)
(4,2)
(5,4)
(6,1)
(7,7)
The arrangement:
(0,5)
(1,3)
(2,6)
(3,0)
(4,7)
(5,1)
(6,4)
(7,2)
The arrangement:
(0,5)
(1,7)
(2,1)
(3,3)
(4,0)
(5,6)
(6,4)
(7,2)
The arrangement:
(0,6)
(1,0)
(2,2)
(3,7)
(4,5)
(5,3)
(6,1)
(7,4)
The arrangement:
(0,6)
(1,1)
(2,3)
(3,0)
(4,7)
(5,4)
(6,2)
(7,5)
The arrangement:
(0,6)
(1,1)
(2,5)
(3,2)
(4,0)
(5,3)
(6,7)
(7,4)
The arrangement:
(0,6)
(1,2)
(2,0)
(3,5)
(4,7)
(5,4)
(6,1)
(7,3)
The arrangement:
(0,6)
(1,2)
(2,7)
(3,1)
(4,4)
(5,0)
(6,5)
(7,3)
The arrangement:
(0,6)
(1,3)
(2,1)
(3,4)
(4,7)
(5,0)
(6,2)
(7,5)
The arrangement:
(0,6)
(1,3)
(2,1)
(3,7)
(4,5)
(5,0)
(6,2)
(7,4)
The arrangement:
(0,6)
(1,4)
(2,2)
(3,0)
(4,5)
(5,7)
(6,1)
(7,3)
The arrangement:
(0,7)
(1,1)
(2,3)
(3,0)
(4,6)
(5,4)
(6,2)
(7,5)
The arrangement:
(0,7)
(1,1)
(2,4)
(3,2)
(4,0)
(5,6)
(6,3)
(7,5)
The arrangement:
(0,7)
(1,2)
(2,0)
(3,5)
(4,1)
(5,4)
(6,6)
(7,3)
The arrangement:
(0,7)
(1,3)
(2,0)
(3,2)
(4,5)
(5,1)
(6,6)
(7,4)

点赞