一、八皇后问题:
public class Queen {
static int n;
static int m=8;
int intArray[]=new int[m];
public boolean checkQueen(int j) {
for (int i=0; i<j; i++) {
if ((intArray[i]==intArray[j]||j-i==Math.abs(intArray[i]-intArray[j]))) {
return false ;
}
}
return true;
}
public void backTrack(int i) {
if(i==m){
if(++n<4)
{
printQueen();
}
} else {
for (int j=0;j<m;j++) {
intArray[i]=j;
if(checkQueen(i)) {
backTrack(i+1);
}
}
}
}
public void printQueen() {
System.out.println("第"+n+"种皇后方案:");
for (int i=0;i<m;i++) {
for (int j=0;j<m;j++) {
if (j==intArray[i]) {
System.out.print("Q ");
} else {
System.out.print("X ");
}
}
System.out.println();
}
}
public static void main(String[] args) {
Queen queen = new Queen();
queen.backTrack(0);
}
}