程序员面试题精选100题(38)-输出1到最大的N位数

题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。

此题考的是内存溢出问题的解决方案
000 ,001,002,...010...,999



char[] num = new char[n]; 

for(int i=0;i<10;i++){ //装配个位
   num[n-1]=Char.valueOf(i);
  print(num,n-2);
}

public void print(char[] num,int currIndex){
   if(currIndex==-1){
      boolean isFirst = true;
      for(int i=0;i<num.length;i++){
         if(num[i]==null||num[i]=='0'&&isFirst){
            continue;
         }else{
           System.out.print(num[i]);
        }
      }
      System.out.println();
     return;
   }

     for(int i=0;i<num.length;i++){
      num[currIndex]=Char.valueOf(i);
      print(num,currIndex-1);
   }
}

你可能感兴趣的:(java,数据结构)