如何用JAVA实现用0-9排列成所有可能的21位数,数位之间可以出现重复的数字。例如1111......111(21位),123221......1(21位)

解决方案 »

  1.   

    public class Test {
    int count;
    public void getNum(String pre,int time){
    if(time==1)
    {
    for(int i=0;i<10;i++){
    System.out.println(pre+i);;
    }
    }else{
    int xx=time-1;
    for(int i=0;i<10;i++){
    getNum(pre+i,xx);
    }
    time--;
    }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    new Test().getNum("",3); }
       
    }这个效率可能不怎么行,String老是创建对象.但貌似是可以实现功能了
      

  2.   


    public class Test {
    int count;
    public void getNum(String pre,int time){
    if(time==1)
    {
    for(int i=0;i<10;i++){
    System.out.println(pre+i);;
    }
    }else{
    int xx=time-1;
    for(int i=0;i<10;i++){
    getNum(pre+i,xx);
    }
    time--;
    }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    new Test().getNum("",3); }
       
    }
      

  3.   

    效率可能不太好,中间创建了很多的String