题目:输入一个int型数字n,输出从1到最长为n位的全部数字。
代码参考了何海涛博客的代码。
主要点是,考虑数字超出了int型的最大表示范围该怎么办。这里不能直接用int型来表示。而是改用char数组,每一个char表示一位数字。
package yuesef;
public class TT {
public static void main(String ss[]) {
Print1ToMaxOfNDigits_3(3);
}
// 输出从1到长度为n的最大整数
static void Print1ToMaxOfNDigits_3(int n) {
// 0 or minus numbers are invalid input
if (n <= 0)
return;
char[] number = new char[n];
for (int i = 0; i < 10; ++i) {
// first digit can be 0 to 9
number[0] = (char) (i + 48); // 加48表示将int型的0-9转化为char
Print1ToMaxOfNDigitsRecursively(number, n, 0);// number数组,数字总长度,当前处理的下标
}
}
static void Print1ToMaxOfNDigitsRecursively(char[] number, int length,
int in