java打印从1到最大的n位数
程序员文章站
2024-03-15 22:08:42
...
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();
}
}
}
上一篇: 打印1到最大的n位数
下一篇: 打印从1到最大的n位数(Java实现)