【递归】八皇后问题

10 篇文章 0 订阅
3 篇文章 0 订阅
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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值