class reNHuangHou {
private int q[] = new int[20];
private int cnt = 0;
private int n = 0;
public reNHuangHou(int n) {
this.n = n;
place(1);
}
public void place(int i) {
if (i > n) {
this.printAll();
} else {
for (int j = 1; j <= n; j++) {
boolean canput = true;
for (int pre = 1; pre < i; pre++) {
if (q[pre] == j || Math.abs(pre - i) == Math.abs(q[pre] - j)) {
canput = false;
break;
}
}
if (canput) {
q[i] = j;
place(i + 1);
}
}
}
}
private void printAll() {
cnt++;
for (int i = 1; i <= n; i++) {
System.out.println("q[" + i + "]是" + q[i]);
}
System.out.println("以上是一种解\n");
}
}