下面是我参照一个叫“后季暖”的网友发布的关于八皇后问题代码编写的一段代码。但是实际执行多打印一行7777777,本应该92组,结果多出来这么一组。请大家帮忙看看怎么回事。因为是新手,实在没看明白问题出在哪里?

public class eightQueen { 

public static void main(String[] args) {
int[] arr = new int[8];
Queen8 myQueen8 = new Queen8();
int count = 0;//记录总放置方法个数
myQueen8.check(arr,0);
count = myQueen8.print(arr);
System.out.println("放置方法总数为:" + count);
}
}


class Queen8{
int count = 0;
//逐个位置放置,通过judge函数判断位置是否合适,通过回溯取得arr整组值,
//通过循环取得arr所有可能组信息
void check(int arr[],int n){
if(n == 8){
print(arr);
return;
}
for(int i = 0;i < 8;i++){
arr[n] = i;
if(judge(arr,n)){
check(arr,n + 1);
}
}
}
//判断后续放置位置是否正确
boolean judge(int arr[],int n){
for(int i = 0;i < n;i++){
if(arr[n] == arr[i] || Math.abs(n - i) == Math.abs(arr[n] - arr[i])){
return false;

}
return true;
}
//打印每个arr组值,并记录总组数
int print(int arr[]){
count++;
for(int i = 0;i < 8;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
return count;
}
}