java八皇后问题急!!!求代码和比
/*
* n皇后问题算法。
* 把棋盘看成一个坐标系,以左下角为原点(0,0)。坐标系的每个点为一个Point类。
* 每个皇后为一个皇后对象Queen。
* 判断一个点的坐标是否在,一个皇后控制的范围的函数为 UnderControl(point)。
*
*/
package ithmetic;
import java。util。Date;
public class EightQueen {
Queen[] stack = new Queen[8];
int sp = 0;
int num = 0;
public EightQueen() {
num = 8;
stack = ne...全部
/*
* n皇后问题算法。
* 把棋盘看成一个坐标系,以左下角为原点(0,0)。坐标系的每个点为一个Point类。
* 每个皇后为一个皇后对象Queen。
* 判断一个点的坐标是否在,一个皇后控制的范围的函数为 UnderControl(point)。
*
*/
package ithmetic;
import java。util。Date;
public class EightQueen {
Queen[] stack = new Queen[8];
int sp = 0;
int num = 0;
public EightQueen() {
num = 8;
stack = new Queen[num];
sp = 0;
}
public EightQueen(int num) {
m = num;
stack = new Queen[num];
sp = 0;
}
/**
* 打印皇后的坐标列表?
*
*/
public void list() {
intln("Begin list the stack Point:");
for (int i = 0; i = 0 && sp = num) {
return null;
}
}
return new Queen(new Point(x, y));
}
public static void main(String[] args) {
EightQueen a = new EightQueen(20);
long start = new Date()。
getTime();
intln("起始时间:[" + start + "]");
lc();
long end = new Date()。getTime();
intln("截止时间:[" + end + "]");
intln("共耗时:[" + (end - start) + "]毫秒");
if (a。
sp > 0) {
st();
}
else {
intln("这个题目无解!");
}
}
}
class Point {
int x, y;
public void println() {
intln("The Point is [x,y]=[" + x + "," + y + "]");
}
public Point() {
x = 0;
y = 0;
}
public Point(int x, int y) {
this。
x = x;
this。y = y;
}
/**
* @return int
*/
public int getX() {
return x;
}
/**
* @return int
*/
public int getY() {
return y;
}
/**
* Sets the x。
* @param x The x to set
*/
public void setX(int x) {
this。x = x;
}
/**
* Sets the y。
* @param y The y to set
*/
public void setY(int y) {
this。y = y;
}
}
class Queen {
Point pos;
public Queen() {
pos = new Point();
}
public Queen(Point pos) {
this。
pos = pos;
}
public boolean isUnderControl(Point point) {
boolean ret = true;
if (point。x != pos。
x
&& point。y != pos。y
&& Math。abs(point。x - pos。x) != Math。abs(point。y - pos。y)
&& Math。
abs(point。x + point。y) != Math。abs(pos。x + pos。y)) {
ret = false;
}
return ret;
}
}
。收起