java实现八皇后问题算法

来源:互联网 发布:齐次变换矩阵的定义 编辑:程序博客网 时间:2024/05/18 01:04
public class Main {public static void main(String[] args) {int[] a=new int[8];f(a,0);System.out.println(count);}static int count;//第k个皇后private static void f(int[] a, int k) {if(k==8){count++;for (int i = 0; i < a.length; i++) {System.out.print(a[i]+" ");}System.out.println();return;}//k行i列for (int i = 0; i < 8; i++) {//每列试探一次a[k]=i;if(cheek(a,k,i)) f(a,k+1);}}//row行   col列private static boolean cheek(int[] a, int row, int col) {for (int j = 0; j < row; j++) {if(a[j]==a[row]) return false;//判断在不在一列上if(row-j==Math.abs(col-a[j])) return false;//判断在不在一条对角线上两个点的坐标行号相减等于列号相减}return true;}}

原创粉丝点击