剑指Offer-12-打印1到最大的n位数

来源:互联网 发布:excel怎样删除重复数据 编辑:程序博客网 时间:2024/05/17 09:42
package char3;public class Print1ToMaxOfNDigits {    //采用字符串模拟加法    void Print1ToMaxOfNDigits(int n) {        if(n<=0)            return;        char number[] = new char[n];        for(int i = 0;i<n;i++) {            number[i] = '0';        }        while(!increment(number)) {            printNumber(number);        }    }    //每次数值+1    boolean increment(char[] number) {        int nTakeOver = 1;        boolean isOverflow = false;        int len = number.length;        for(int i=len-1;i>=0;i--) {            int sum = number[i] - '0' + nTakeOver;            if(sum>=10) {                if(i == 0)                    isOverflow = true;                nTakeOver = 1;                number[i] = (char)('0'+sum-10);            }            else {                number[i] = (char)('0'+sum);                break;            }        }        return isOverflow;    }    void Arrange_Print1ToMaxOfNDigits(int n) {        if(n<=0) {            return;        }        char number[] = new char[n];        for(int i = 0;i<n;i++) {            number[i] = '0';        }        for(int i=0;i<10;i++) {            number[0] = (char)('0' + i);            Recursive(number,number.length,0);        }    }    void Recursive(char[] number,int length,int index) {        if(index+1 == length) {            printNumber(number);            return;        }        for(int i=0;i<10;i++) {            number[index+1] = (char)('0' + i);            Recursive(number,number.length,index+1);        }    }    void printNumber(char[] number) {        boolean isZero = true;        for(int i=0;i<number.length;i++) {            if(isZero && number[i]!='0') {                isZero = false;            }            if(!isZero) {                System.out.print(number[i]);            }        }        System.out.println();    }    public static void main(String[] args) {        // TODO Auto-generated method stub        Print1ToMaxOfNDigits p = new Print1ToMaxOfNDigits();        p.Arrange_Print1ToMaxOfNDigits(2);    }}
0 0
原创粉丝点击