java打印从1到最大的n位数

来源:互联网 发布:淘宝违规词查询工具 编辑:程序博客网 时间:2024/06/03 18:10
package offer;/* * 打印从1到最大的n位数 */public class Print1ToMaxOfDigits {    public static void main(String[] args) {        int n = 5;        method(n);    }    private static void method(int n) {        int[] data = new int[n];        //数组的第一位从0-9全排列        for (int i = 0; i < 10; i++) {            data[0] = i;            printMethod(data, n, 0);        }    }    private static void printMethod(int[] data, int n, int i) {        //退出条件是最后一位        if (i + 1 == n) {            printNum(data);            return;        }        //递归赋值给下一位0-9        for (int j = 0; j < 10; j++) {            data[i + 1] = j;            printMethod(data, n, i + 1);        }    }    //打印数字,先去掉前面的0,并注意去掉全为0的情况    private static void printNum(int[] data) {        int notZero = 0;        boolean isEnd = false;        for (int i = 0; i < data.length; i++) {            if (data[i] != 0) {                notZero = i;                break;            }            if (i == data.length - 1) {                isEnd = true;            }        }        if (isEnd) {        } else {            for (int i = notZero; i < data.length; i++) {                System.out.print(data[i]);            }            System.out.println();        }    }}
原创粉丝点击