题目描述
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。
代码示例
public class Offer12 {
public static void main(String[] args) {
Offer12 testObj = new Offer12();
testObj.print1ToMaxOfNBit(2);
}
private void print1ToMaxOfNBit(int n) {
if (n <= 0) {
return;
}
char[] nums = new char[n];
print1ToMaxOfNBit(nums, 0);
}
private void print1ToMaxOfNBit(char[] nums, int bitSize) {
if (bitSize == nums.length) {
printNumber(nums);
return;
}
for (int i = 0; i < 10; i++) {
nums[bitSize] = (char)(i + '0');
print1ToMaxOfNBit(nums, bitSize + 1);
}
}
public void printNumber(char[] nums) {
int index = 0;
while (index < nums.length && nums[index] == '0') {
index++;
}
while (index < nums.length) {
System.out.print(nums[index++]);
}
System.out.println();
}
}