用java实现5位数的全排列,得到00000、00001...99998、99999,我增用c语言递归实现过。大家说用java如何实现。

解决方案 »

  1.   

    //随便写了一个,效率低的不行,抛砖引玉 :)
    import java.util.ArrayList;;
    public class test {

    public static void main(String[] args) {
    ArrayList array = new ArrayList();
    for(int i = 0; i < 100000; i++){
    String tmp = String.valueOf(i);
    switch(tmp.length()){
    case 1:
    tmp = "0000" + tmp;
    break;
    case 2:
    tmp = "000" + tmp;
    break;
    case 3:
    tmp = "00" + tmp;
    break;
    case 4:
    tmp = "0" + tmp;
    break;
    }
    array.add(tmp);
    System.out.println(tmp);

    }}
      

  2.   

    楼主想要递归的,我就来一个吧public class TestClass1 {
        static final String[] s={"0","1","2","3","4","5","6","7","8","9",};
        public static void getOne(String ret,int pos){
            if(pos>=6){
                System.out.println(ret);
                return;
            }
            for(int i=0;i<10;i++){
                ret+=s[i];
                getOne(ret, pos+1);
                ret=ret.substring(0, pos-1);
            }
        }
        public static void main(String[] args){
            String num="";
            getOne(num, 1);
        }
    }
      

  3.   

    for (int i = 1; i < 100000; i++) {
       for (int j = 0; j < 4 - Math.floor(Math.log10(i)); j++)
          System.out.print(0);
       System.out.print(i);
       System.out.println();
    }
      

  4.   

    import java.util.*;public class SortTest
    {
    public static void main(String args[])
    {
    Formatter fmt = new Formatter();
    for (int i = 0; i<100000; i++)
    {
    fmt.format("%05d%n",i);
    }
    System.out.println (fmt+" ");
    }
    }
      

  5.   

    import java.util.*;public class SortTest
    {
    public static void main(String args[])
    {
    Formatter fmt = new Formatter();

    for (int i = 0; i<100000; i++)
    {
    fmt.format("%05d ",i);
    if(i%10 == 9)
    {
    fmt.format("%n");
    }
    }
    System.out.println (fmt+" ");
    }
    }这个好看点:)
      

  6.   

    有位40岁老程序员提出一种算法,太简单了:
    for(int i=100000;i<200000;i++){
        String str=(""+i).substring(1);
        ......
    }
      

  7.   

    nlhlx(胡) 是newxy那个胡吧。
      

  8.   

    nlhlx(胡) 是newxy那个胡吧。
    是的,我有点受宠若惊.