package com.recursion.implementation;
public class EightQueen {
int max = 8;
int []array = new int[max];
int Test=1;
public static void main(String[] args) {
EightQueen Test = new EightQueen();
Test.check(0);
}
private void check(int n) {
if(n == max) {
printf();
return;
}
for (int i = 0; i < max; i++) {
array[n] = i;
if(Judge(n)) {
check(n+1);
}
}
}
public boolean Judge(int n) {
for (int i = 0; i < n; i++) {
if (array[i] == array[n] || Math.abs(n-i) == Math.abs(array[n] - array[i])) {
return false;
}
}
return true;
}
public void printf() {
System.out.print("第"+Test+"次:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
Test++;
}
}