蛮力算法
public class eightQueens { public static void main(String[] args) { int[] queens = initial(); while (check(queens)) shake(queens); show(queens); } public static boolean check(int[] queens) { for (int i = 0; i < 8; i++) for (int j = 0; j < i; j++) if (Math.abs(i - j) == Math.abs(queens[i] - queens[j])) return true; return false; } public static void shake(int[] queens) { int randomNum, temp, i; for (i = 0; i < 8; i++) { randomNum = (int) (Math.random() * 10000000) % 8; temp = queens[i]; queens[i] = queens[randomNum]; queens[randomNum] = temp; } } public static void show(int[] queens) { int i, j; for (i = 0; i < 8; i++) { for (j = 0; j < queens[i]; j++) System.out.print("| "); System.out.print("|Q"); while (j++ + 1 < 8) System.out.print("| "); System.out.println('|'); } } public static int[] initial() { int[] queens = new int[8]; for (int i = 0; i < 8; i++) queens[i] = i; return queens; } }