八皇后问题 --- 递归解法 --- java代码
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 n = 1 或 n ≥ 4 时问题有解[1]。 以上内容摘自维基百科:http://zh.wikipedia.org/wiki/%E5%85%AB%E7%9A%87%E5%90%8E%E9%97%AE%E9%A2%98
代码如下:
public class Demo {
public static void main(String[] args) {
nextRowPlace(START_ROW);
}
private static final int ROW = 8, COL = 8, START_ROW = 0, START_COL = 0;
private static boolean[][] board = new boolean[8][8];
private static void nextRowPlace(final int row) {
if(row == ROW){
print();
return;
}
for(int j=START_COL; j!=COL; ++j)
if(checkPosValid(row, j)){
board[row][j] = true;
nextRowPlace(row+1);
board[row][j] = false;
}
return;
}
private static boolean checkPosValid(final int row, final int col) {
for(int i=START_ROW; i!=ROW; ++i)
if(board[i][col])
return false;
for(int i=row, j=col; i!=START_ROW-1 && j!=START_COL-1; --i, --j)
if(board[i][j])
return false;
for(int i=row, j=col; i!=START_ROW-1 && j!= COL; --i, ++j)
if(board[i][j])
return false;
return true;
}
private static int count = 0;
private static void print() {
System.out.println("--- --- --- --- --- " + ++count +" --- ---");
for(int i=START_ROW; i!=ROW; ++i){
for(int j=START_COL; j!=COL; ++j)
System.out.print(board[i][j] ? "O " : "X ");
System.out.println();
}
System.out.println();
return;
}
}
运行结果如下:
--- --- --- --- --- 1 --- --- O X X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X --- --- --- --- --- 2 --- --- O X X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X --- --- --- --- --- 3 --- --- O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X --- --- --- --- --- 4 --- --- O X X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 5 --- --- X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 6 --- --- X O X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X X X O X X X X --- --- --- --- --- 7 --- --- X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X O X X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X --- --- --- --- --- 8 --- --- X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X --- --- --- --- --- 9 --- --- X O X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 10 --- --- X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X O X X X X X X X X X X O X X X X --- --- --- --- --- 11 --- --- X O X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 12 --- --- X O X X X X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 13 --- --- X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X --- --- --- --- --- 14 --- --- X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X --- --- --- --- --- 15 --- --- X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X --- --- --- --- --- 16 --- --- X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X --- --- --- --- --- 17 --- --- X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X --- --- --- --- --- 18 --- --- X X O X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X X O O X X X X X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 19 --- --- X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X X X X X X X X X O X X X X O X X X --- --- --- --- --- 20 --- --- X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X O X X X X X X X X X X X X X X O X X X O X X X X --- --- --- --- --- 21 --- --- X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X O X X X X X X --- --- --- --- --- 22 --- --- X X O X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X O X X X X X X X --- --- --- --- --- 23 --- --- X X O X X X X X X X X X X O X X X X X X X X X O O X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X --- --- --- --- --- 24 --- --- X X O X X X X X X X X X X O X X X X X X X X X O O X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X X X X X O X X X X --- --- --- --- --- 25 --- --- X X O X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 26 --- --- X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X --- --- --- --- --- 27 --- --- X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X X --- --- --- --- --- 28 --- --- X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X --- --- --- --- --- 29 --- --- X X X O X X X X O X X X X X X X X X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X --- --- --- --- --- 30 --- --- X X X O X X X X O X X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X --- --- --- --- --- 31 --- --- X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X O X --- --- --- --- --- 32 --- --- X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O O X X X X X X X X X X X O X X X --- --- --- --- --- 33 --- --- X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X O X X X X X X X --- --- --- --- --- 34 --- --- X X X O X X X X X O X X X X X X X X X X X X O X X X X X O X X X O X X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X --- --- --- --- --- 35 --- --- X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 36 --- --- X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X --- --- --- --- --- 37 --- --- X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X --- --- --- --- --- 38 --- --- X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X --- --- --- --- --- 39 --- --- X X X O X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X X --- --- --- --- --- 40 --- --- X X X O X X X X X X X X X X O X O X X X X X X X X X X X X X X O X X X X O X X X X O X X X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 41 --- --- X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X --- --- --- --- --- 42 --- --- X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X X O --- --- --- --- --- 43 --- --- X X X O X X X X X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X O X X X X X X --- --- --- --- --- 44 --- --- X X X O X X X X X X X X X X X O O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 45 --- --- X X X O X X X X X X X X X X X O O X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 46 --- --- X X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X --- --- --- --- --- 47 --- --- X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X --- --- --- --- --- 48 --- --- X X X X O X X X O X X X X X X X X X X X X X X O X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X --- --- --- --- --- 49 --- --- X X X X O X X X O X X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X --- --- --- --- --- 50 --- --- X X X X O X X X X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X X X X O X --- --- --- --- --- 51 --- --- X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X O X X X X X X X --- --- --- --- --- 52 --- --- X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X --- --- --- --- --- 53 --- --- X X X X O X X X X O X X X X X X X X X X X X X O O X X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X O X X --- --- --- --- --- 54 --- --- X X X X O X X X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X O X --- --- --- --- --- 55 --- --- X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X --- --- --- --- --- 56 --- --- X X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X X --- --- --- --- --- 57 --- --- X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X --- --- --- --- --- 58 --- --- X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X --- --- --- --- --- 59 --- --- X X X X O X X X X X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X O O X X X X X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 60 --- --- X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X X O --- --- --- --- --- 61 --- --- X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X X O X X X O X X X X --- --- --- --- --- 62 --- --- X X X X O X X X X X X X X X O X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X O X X X X X X --- --- --- --- --- 63 --- --- X X X X O X X X X X X X X X X O X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X --- --- --- --- --- 64 --- --- X X X X O X X X X X X X X X X O X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 65 --- --- X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 66 --- --- X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X --- --- --- --- --- 67 --- --- X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X --- --- --- --- --- 68 --- --- X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X --- --- --- --- --- 69 --- --- X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X X O X X X O X X X X X O X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 70 --- --- X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X X O X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X --- --- --- --- --- 71 --- --- X X X X X O X X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X X O --- --- --- --- --- 72 --- --- X X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X O X --- --- --- --- --- 73 --- --- X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X O O X X X X X X X X X X X O X X X --- --- --- --- --- 74 --- --- X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X O X X X X X X X X X X O X X X X --- --- --- --- --- 75 --- --- X X X X X O X X X X O X X X X X X X X X X X O X X X X O X X X X O X X X X X X X X X X X X X X O X O X X X X X X X X X X O X X X --- --- --- --- --- 76 --- --- X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X --- --- --- --- --- 77 --- --- X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X --- --- --- --- --- 78 --- --- X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O --- --- --- --- --- 79 --- --- X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X --- --- --- --- --- 80 --- --- X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X --- --- --- --- --- 81 --- --- X X X X X X O X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X X X X X O X X X --- --- --- --- --- 82 --- --- X X X X X X O X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 83 --- --- X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X X O X X X X O X X X --- --- --- --- --- 84 --- --- X X X X X X O X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X O X X X X X X X X X O X X X X --- --- --- --- --- 85 --- --- X X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X X --- --- --- --- --- 86 --- --- X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X O O X X X X X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 87 --- --- X X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X O X X X --- --- --- --- --- 88 --- --- X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X --- --- --- --- --- 89 --- --- X X X X X X X O X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 90 --- --- X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X --- --- --- --- --- 91 --- --- X X X X X X X O X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 92 --- --- X X X X X X X O X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X
2014-04-12
八皇后问题 --- 递归解法 --- java代码的更多相关文章
- 比赛组队问题 --- 递归解法 --- java代码 --- 八皇后问题
两队比赛,甲队为A.B.C3人,乙队为X.Y.Z3人.已知A不和X比,C不和X.Z比,请编程序找出3队赛手名单 采用了与八皇后问题相似的解法,代码如下: 如有疑问请链接八皇后问题的解法:http:// ...
- 骑士周游问题 --- 递归解法 --- java代码
骑士游历: 定义了向量的数组M,行数组X,列数组Y, 棋盘plane,计数器count,走动步数step 需要注意的是,递归函数的进入前的验证,原先的想法是传入来时的方向参数,可是这样的想法被实践否定 ...
- java实现八皇后问题(递归和循环两种方式)
循环方式: package EightQueens; public class EightQueensNotRecursive { private static final boolean AVA ...
- 八皇后问题 递归实现 C语言 超详细 思路 基础
八皇后问题 :假设 將八个皇后放到国际象棋盘上,使其两两之间无法相互攻击.共有几种摆法? 基础知识: 国际象棋里,棋盘为8X8格. 皇后每步可以沿直线.斜线 走任意格. 思路: 1.想把8个皇后放进去 ...
- 八皇后非递归(仅使用一个数组且可扩展为N皇后问题)
</pre><pre name="code" class="cpp">/* Theme:八皇后(非递归) Coder:秒针的声音 Tim ...
- [LeetCode系列]N皇后问题递归解法 -- 位操作方式
N皇后问题: 给定8*8棋盘, 放置n个皇后, 使其互相不能攻击(即2个皇后不能放在同一行/列/正反对角线上), 求解共有多少种放置方式? 这个问题的解答网上有不少, 但是位操作解法的我看到的不多. ...
- K皇后问题递归解法
#include<iostream> #include<cmath> #include<ctime> using namespace std; bool che ...
- java递归求八皇后问题解法
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
- 对八皇后的补充以及自己解决2n皇后问题代码
有了上次的八皇后的基础.这次准备解决2n皇后的问题,: //问题描述// 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行./ ...
随机推荐
- Java:正则表达式的详解
正则表达式:符合一定规则的表达式. 作用:用于专门操作字符串. 特点:用一些特定的符号来表示一些代码的操作.这样就简化书写.所以学习正则表达式就是学习一些特殊符号的使用. 好处:可以简化对字符串的操作 ...
- Seajs demo
index.html <!doctype html> <html lang="en"> <head> <meta charset=&quo ...
- 360每日自动签到,领取积分 (java httpclient4.x)
如何登陆360,并每日自动签到这次的难点主要集中在登陆这里了,开始抓包发现360登陆验证很麻烦,但是后来发现一个简单的方法.因为我安装了360安全卫士,发现点击那个金币的按钮能直接验证登陆,哈哈~所以 ...
- [HIHO1323]回文字符串(区间dp)
题目链接:http://hihocoder.com/problemset/problem/1323 思路:区间dp,按照区间长度枚举所有区间和区间的起始位置.这时也可获取到区间的末位,比对这两个字符是 ...
- Codeforces Round #362 (Div. 2) A.B.C
A. Pineapple Incident time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Android应用加入微信分享
一.申请你的AppID http://open.weixin.qq.com/ 友情提示:推荐使用eclipse打包软件最后一步的MD5值去申请AppID 二.官网下载libammsdk.jar包 ht ...
- POJ 3259 Wormholes【Bellman_ford判断负环】
题意:给出n个点,m条正权的边,w条负权的边,问是否存在负环 因为Bellman_ford最多松弛n-1次, 因为从起点1终点n最多经过n-2个点,即最多松弛n-1次,如果第n次松弛还能成功的话,则说 ...
- VFL示例
•[cancelButton(72)]-12-[acceptButton(50)] •取消按钮宽72point,accept按钮宽50point,它们之间间距12point • •[wideView( ...
- php延迟加载的示例
class a{ ; ; //public $d = 5; public function aa(){ echo self::$b; } public function cc(){ echo stat ...
- HDU1010 Tempter of the Bone
解题思路:相当经典的一题,回溯,具体细节处理见代码. #include<cstdio> #include<cstring> #include<algorithm> ...