剑指offer-面试题12:打印1到最大的n位数

来源:互联网 发布:上海财经大学知乎 编辑:程序博客网 时间:2024/05/02 02:23

题目

输入数字你,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数即999。

public void PrintToMaxOfNDigits(int n){        if(n<=0)            return;        int[]  number=new int[n];        while(Increment(number)){            PrintNumber(number);        }    }     private void PrintNumber(int[] number) {//打印出来        int i=0;        while(number[i]==0) i++;        while(i<number.length){            System.out.print(number[i]);            i++;        }                       System.out.print(" ");    }    private boolean Increment(int[] number) {//加1处理             int j=number.length-1;        number[j]=number[j]+1;        while(j>0){            if(number[j]>9){                number[j]-=10;                number[j-1]+=1;            }                       j--;        }        if(number[0]>9){//最高位超过9,终止递增循环                 return false;        }        else{            return true;        }           }
0 0