输出1到最大的N位数 - peasking_dd的专栏 - 博客频道 - CSDN.NET
题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。
- public void print(int n){
- char[] result=new char[n];
- printHelpRecursive(result,n,0);
- }
- //from result[0] to result[n-1],set 0-9 into it
- public void printHelpRecursive(char[] result,int length,int index){
- if(index==length){
- printNumber(result);
- }else{
- for(int i=0;i<=9;i++){
- result[index]=(char)('0'+i);
- printHelpRecursive(result,length,index+1);
- }
- }
- }
- //don't print the prefix '0'.e.g,when "0012",print "12"
- public void printNumber(char[] re){
- int len=re.length;
- boolean canPrint=false;
- for(int i=0;i<len-1;i++){
- if(!canPrint&&re[i]!='0'){
- canPrint=true;
- }
- if(canPrint){
- System.out.print(re[i]);
- }
- }
- System.out.println(re[len-1]);//the last bit is always printed.
- }