有5*5的表格,每行每列填入1到5的数字,要求每行不重复和每列数字不重复,如何设计程序?

解决方案 »

  1.   


    public class Main {
    public static void main(String[] args) {
    int[] a = {1,2,3,4,5};
    for(int i=0; i<a.length; i++) {
    for(int j=i; j<a.length; j++) {
    System.out.print(a[j] + " ");
    }
    for(int k=i-1; k>=0; k--) {
    System.out.print(a[k] + " ");
    }
    System.out.println();
    }
    }
    }这应该能满足楼主的要求,我是这样想的。把要输出的每一行,分为两部分,然后分开,一部分一部分输出!
      

  2.   

    这个问题可以转化为全覆盖问题
    利用 knuth 的 DLX 就可以解决
      

  3.   

    中午写的有点问题,输出的与楼主的需求不太一样!
    下面改改!public class Main {
        public static void main(String[] args) {
            int[] a = {1,2,3,4,5};
            for(int i=0; i<a.length; i++) {
                for(int j=i; j<a.length; j++) {
                    System.out.print(a[j] + " ");
                }
                for(int k=0; k<i; k++) {//这里是从小到大打印后面的结果
                    System.out.print(a[k] + " ");
                }
                System.out.println();
            }
        }
    }