八皇后問題(遞迴)
如何能夠在 8×8 的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?為了達到此目的,任兩個皇后都不能處於同一條橫行、縱行或斜線上。
* 8*8的棋盤方格
* 每一行的某一列上要有乙個皇后
* */
public
class
eightqueen
//左上方
for(
int i=
1;row-i>=
0&&col-i>=
0;i++
)//左下方
for(
int i=
1;row+i<
8&&col-i>=
0;i++
)//右上方
for(
int i=
1;row-i>=
0&&col+i<
8;i++
)//右下方
for(
int i=
1;row+i<
8&&col+i<
8;i++
)return
true;}
public
static
void
equeen
(int row,
int col,
int chess[
])system.out.
println()
;}}//else 在當前行中進行嘗試出符合的列然後進行遞迴呼叫
else
//回退後,將原來這一行的這一列的1置為0;
chess2[row]
[j]=0;
}}}public
static
void
main
(string[
] args)
}nodanger函式中的判斷中的斜線判斷另一種方式:
int plus = row+col;
//右下劃線,第每個點的row+col都相等
int minus = row-col;
//左下劃線,第每個點的row-col都相等
八皇后問題 遞迴
問題描述 在乙個8 8西洋棋盤上,有8個皇后,每個皇后佔一格 要求皇后間不會出現相互 攻擊 的現象,即不能有兩個皇后處在同一行 同一列或同一對角線上。問共有多少種不同的方法。程式 public void testeightprince 初始化,所有的位置都可以放置乙個皇后 for int x 0 x...
八皇后問題 遞迴
八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例.在8x8格的西洋棋上擺放8個皇后,使其不能互相攻擊,即 任意兩個皇后都不能處於同一行,同一列或同一斜線上,問有多少中擺法 92 第乙個皇后先放第一行第一列 第二個皇后放在第二行第一列,然後判斷是否ok,如果不ok,繼續放在第二列,第三列,依...
八皇后問題(遞迴版)
author phinecos since 2008 10 31 class eightqueen 第col列不能有多於1個皇后 for i 0 i maxsize i 對角線不能有多於1個皇后 反對角線 for i row 1 j col 1 i 0 j maxsize i,j for i row...