用个10层循环可以解决,但这方法太笨了,请问有什么好的办法吗?谢谢了!

解决方案 »

  1.   

    这是 组合里没有重复两个数的情竞
    class shu{    public static void main(String args[]){
            int a[] = {0,1,2,3,4,5,6,7,8,9};
    int k = 0;
    int n = (a.length * (a.length - 1)) / 2; //数学的排列组合
    String ss[] = new String[n];        for(int i = 0; i<a.length-1; i++){            for(int j = i+1; j < a.length; j++){
    ss[k] = a[i] + "," + a[j];
    System.out.print(ss[k] + "\t");
    k++;
                }
            }    }
    }
    如果要重复的话,改一下 n 和循环就可以了
      

  2.   

    一開始帶入print("");private void print(String appendStr){
         if(appendStr.length()>=a.length){
             System.out.println(appendStr);
             return;
         }
         for(int i=0;i<a.length;i++){
             if(!used[i]){
                used[i] = true;
                    print(appendStr+a[i]);
                used[i] = false;
             }
         }
     }
     boolean[] used = {false, false,false,false,false,false,false,false,false,false};
     private int a[] = {0,1,2,3,4,5,6,7,8,9};