把思路写成代码也是很复杂的事啊。
public class NQueen {
static int n=10;
static int []a=new int[n];
static int count=0;
public static void main(String[] args) {
find(0);
System.out.println(count);
}
static void find(int k){
if (k==n){
count++;
return;
}
for(int i=0;i<n;i++){
if (compare(k,i)){
a[k]=i;
find(k+1);
}
}
}
static boolean compare(int row,int col){
for (int i=0;i<row;i++){
if (a[i]==col||Math.abs(row-i)==Math.abs(col-a[i]))return false;
}
return true;
}
}