【1】代码:
package algorithm.queen;
import java.io.OptionalDataException;
public class Queen {
private static final int max = 8;
private static int[] arr = new int[max];
private static int sum = 0;
public static void main(String[] args) {
queen(0);
System.out.println();
System.out.println();
System.out.println();
System.out.println(sum);
}
public static void queen(int n) {
if (n == max) {
prin();
sum++;
return;
}
for (int i = 0; i < max; i++) {
arr[n] = i;
if (isValid(n)) {
queen(n + 1);
}
}
return;
}
public static void prin() {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static boolean isValid(int n) {
for (int i = 0; i < n; i++) {
if (arr[n] == arr[i] || Math.abs(i - n) == Math.abs(arr[i] - arr[n])) {
return false;
}
}
return true;
}
}
【2】运行结果: