/**
* @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+1
,j=col-1;i
<
maxsize&&j
>=0;
++i,
--j)
//對角線
for(i
=row-1
,j=col-1;i
>=0&&
j>=0;
--i,
--j)
for(i
=row+1
,j=col+1;i
<
maxsize&&j
<
maxsize;
++i,
++j)
return
true;}
public
static
void
solve(
intcurchess,
intnum)
else
solve(curchess+1
,num);
//chess[i][j]無法放置,跳過它}}
}public
static
void
main(string args)
solve(0,
0);system.out.println(
"八皇后問題共有"+
oktimes+"
個解法"
); }
}
八皇后問題(非遞迴版)
include iostream include stack using namespace std const intmaxsize 8 棋盤大小 intchess maxsize maxsize 棋盤 定義棧結點,表示乙個皇后的位置 struct node 進行皇后問題處理 返回找到的答案個數 ...
八皇后問題 遞迴
問題描述 在乙個8 8西洋棋盤上,有8個皇后,每個皇后佔一格 要求皇后間不會出現相互 攻擊 的現象,即不能有兩個皇后處在同一行 同一列或同一對角線上。問共有多少種不同的方法。程式 public void testeightprince 初始化,所有的位置都可以放置乙個皇后 for int x 0 x...
八皇后問題 遞迴
八皇后問題 遞迴 如何能夠在 8 8 的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?為了達到此目的,任兩個皇后都不能處於同一條橫行 縱行或斜線上。8 8的棋盤方格 每一行的某一列上要有乙個皇后 public class eightqueen 左上方 for int i 1 r...