class Main {
int queen = 4;
int count = 0;
int[] array = new int[queen];
public static void main(String[] args) {
Main q = new Main();
q.check(0);
System.out.printf("八皇后一共有%d种放法.", q.count);
}
public void print() {
for (int value : array) {
System.out.print(value + " ");
}
System.out.println();
}
private void check(int n) {
if (n == queen) {
print();
count++;
return;
}
for (int i = 0; i < queen; i++) {
array[n] = i;
if (judge(n)) {
check(n + 1);
}
}
}
private boolean judge(int n) {
for (int i = 0; i < n; i++) {
if (array[i] == array[n] || Math.abs(array[n] - array[i]) == Math.abs(n - i)) {
return false;
}
}
return true;
}
}