public static class Queue8{
private int[] queens= new int[8];
private int count=0;
public void put(int curCol){
System.out.println("put("+curCol+")");
if(curCol==8) {
count++;
return;
}
for(int row=0;row<8;row++) {
queens[curCol]=row;
//System.out.println("queens["+queens[curCol]+"]"+"="+row);
if(check(curCol,row)) {
//System.out.println(Arrays.toString(queens));
put(1+curCol);
}
}
}
public boolean check(int curCol,int putRow) {
for(int i=0;i<curCol;i++) {
if(queens[i]==putRow|| Math.abs(queens[i]-putRow)==Math.abs(curCol-i)) {
//System.out.println("check ("+curCol+","+putRow+");false");
return false;
}
}
//System.out.println("check ("+curCol+","+putRow+");true");
return true;
}
}
网友评论