12 打印1到最大的n位数

public class test12{
    //数组解决大数问题 by myself
    public static void printToN1(int n){
        int[] array = new int[n];
        while(increment(array, 0, n)){
            print(array, n);
        }
    }
    private static boolean increment(int[] array, int i, int n) {//模拟数字加1操作
        if(i==n-1&&array[i]==9){
            return false;//增加1失败,结束程序
        }else if(array[i]==9){
            array[i]=0;
            return increment(array,i+1,n);
        }else{
            array[i]++;
            return true;
        }
    }
    private static void print(int[] array, int n) {//从第一个不是0的数开始打印
        int index = n-1;
        while(index>0&&array[index]==0){
            index--;
        }
        for(int i=index;i>=0;i--){
            System.out.print(array[i]);
        }
        System.out.print(",");
    }
    //找到100,但没有考虑大数
    public static void printToN2(int n){
        int max = 1;
        int j = 0;
        while(j++<n){
            max *=10;
        }
        for(int i=1;i<max;i++){
            System.out.print(i+",");
        }
    }

    public static void main(String[] args){
        printToN1(4);
    }
}
原文地址:https://www.cnblogs.com/seven7seven/p/3930386.html