public class eight_queens {
static int[][] arr = new int[2][9];
static int cnt = 0;
public static void dp(int index) {//行数
if (index>8) {
cnt++;
return;
}
for (int i = 1; i < arr[0].length; i++) {//列数
if (arr[0][i] == 0 && safe(index, i)) {
arr[0][i] = 1;
arr[1][i] = index;
// System.out.println(i);
dp(index+1);
arr[0][i] = 0;
}
}
}
public static boolean safe(int index,int v) {
boolean flag = true;
for (int i = 1; i < arr[0].length; i++) {
if (arr[0][i]!=0) {
if (Math.abs(arr[1][i]-index)/Math.abs(i-v)==1 && Math.abs(arr[1][i]-index)%Math.abs(i-v)==0) {
flag = false;
break;
}
}
}
return flag;
}
public static void main(String[] args) {
dp(1);
System.out.println(cnt);
}
}
八皇后问题
最新推荐文章于 2024-03-14 09:12:38 发布