有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

解决方案 »

  1.   

    public class Csdn {
        public static void main(String[] args) {
            Csdn csdn = new Csdn();
            csdn.findNumber();
        }    public void findNumber(){
            int groupNum = 0;
            for(int i = 1;i <= 4;i++){
               for(int j = i+1 ; j <= 4;j++){
                   for(int k = j+1;k <=4;k++){
                       groupNum++;  
                       printNumber(groupNum,i,j,k);
                   }
               }
            }
            System.out.println("一共分为"+ groupNum + "组,每组六个数");
        }
        
        public void printNumber(int groupNum,int i ,int j,int k){
            System.out.println("第" + groupNum + "组:");
               System.out.print(i * 100 +  j * 10 + k + "  ");
               System.out.print(i * 100 +  k* 10 + j+ "  ");
               System.out.print(j * 100 +  i* 10 + k+ "  ");
               System.out.print(j * 100 +  k* 10 + i+ "  ");
               System.out.print(k * 100 +  i* 10 + j+ "  ");
               System.out.print(k * 100 +  j* 10 + i+ "  ");
               System.out.println();
        }}
      

  2.   

    public class Notes{
        public static void main(String[] args) {
            int count=0;
            for(int i=1;i<=4;i++){
                for(int j=1;j<=4;j++){
                    for(int k=1;k<=4;k++){
                        if(i!=j&&j!=k&&i!=k){
                            count++;
                            int temp=i*100+j*10+k;
                            System.out.println(temp);
                        }
                    }
                }
            }
            System.out.println(count);
        }
    }
      

  3.   

    全排列问题?个数很简单应该是4!=4*3*2*1,排列嘛就用下面的递归吧~~~前段时间网上找的
    public class Main {    /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            int[] list = {1, 2, 3, 4};
            perm(list, 0, list.length - 1);
        }    private static void perm(int[] list, int i, int j) {
            int k;
            if (i > j) {
                for (k = 0; k <= j; k++) {
                    System.out.print(list[k]);
                }
                System.out.println();
            } else {
                for (k = i; k <= j; k++) {
                    swap(list, i, k);
                    perm(list, i + 1, j);
                    swap(list, i, k);
                }
            }
        }    private static void swap(int[] list, int i, int k) {
            int m;
            m = list[i];
            list[i] = list[k];
            list[k] = m;
        }
    }