Algorithm 版 (精华区)
发信人: sino (茶水博士), 信区: Theory
标 题: 八皇后问题的Java程序
发信站: 哈工大紫丁香 (Sun Aug 27 13:26:30 2000), 转信
发信人: acat.bbs@bbs.rjgc.whu.edu.cn (喵), 信区: algorithm
发信站: 珞珈山水 (Fri May 16 10:36:43 1997)
转信站: ACE!ustcnews!rjgcnews!rjgcbbs
// 火火试一下这个程序的速度如何?
// 程序中 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);
}
}
--
/\___/\
( o o )
( =^= )
( )
( )
( )))))))))))
--
※ 修改:.fib 於 Aug 27 13:24:11 修改本文.[FROM: bbs.hit.edu.cn]
--
※ 转寄:.南京大学小百合 bbs.nju.edu.cn.[FROM: bbs.hit.edu.cn]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: fib.bbs@bbs.nju.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.138毫秒