?? 八皇后問題的java程序.txt
字號:
發信人: Tity (云中浪子), 信區: arithmetic
標 題: 八皇后問題的Java程序
發信站: 幽幽黃桷蘭 (2002年07月08日19:41:44 星期一), 站內信件
// 火火試一下這個程序的速度如何?
// 程序中 d l r 數組分別表示不可放的縱列和左右斜45度列
class queen
{
boolean[] d, l, r;
int[] q;
int count;
queen (int n)
{
count = 0;
q = new int[n];
d = new boolean[n];
l = new boolean[n + n];
r = new boolean[n + n];
Run (0, n);
System.out.print ("Total=");
System.out.println (count);
}
void Run (int i, int n)
{
int k;
for (k = 0; k < n; k++)
{
if (d[k] || l[i - k + n] || r[i + k])
continue;
d[k] = l[i - k + n] = r[i + k] = true;
q[i] = k;
if (i == n - 1)
count++;
else
Run (i + 1, n);
d[k] = l[i - k + n] = r[i + k] = false;
}
}
}
}
}
public static void main (String arg[])
{
int n;
n = 8;
if (arg.length >= 1)
n = Integer.parseInt (arg[0]);
new queen (n);
}
}
--
--
_
---------------+---------------
___ /^^[___ _
/|^+----+ |#___________//
( -+ |____| _______-----+/
==_________--' \
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -