题目描述:输入数字n,按顺序打印从1到最大的n位数十进制数,比如:输入 3,打印出1到999.
思路:考虑大数问题,使用字符串或数组表示
package Function;
//打印从1到最大的n位数
// 思路:考虑大数问题,使用字符串或数组表示。
public class printToMaxOfNDigits17 {
public void printToMaxOfNDigits(int n) {
int[] array=new int[n];
if(n <= 0)
return;//renturn null
printArray(array, 0);
}
private void printArray(int[] array,int n) {
for(int i = 0; i < 10; i++) {
//一位数,二位数,,,,n-1位数
if(n != array.length) {
array[n] = i;
printArray(array, n+1);
//n位数
} else {
boolean isFirstNo0 = false;
for(int j = 0; j < array.length; j++) {
if(array[j] != 0) {
System.out.print(array[j]);
if(!isFirstNo0)
isFirstNo0 = true;
} else {
if(isFirstNo0)
System.out.print(array[j]);
}
}
System.out.println();
return ;
}
}
}
public static void main(String[] args) {
printToMaxOfNDigits17 p=new printToMaxOfNDigits17();
p.printToMaxOfNDigits(3);
}
}