题目
输入数字你,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数即999。
解
public void PrintToMaxOfNDigits(int n){
if(n<=0)
return;
int[] number=new int[n];
while(Increment(number)){
PrintNumber(number);
}
}
private void PrintNumber(int[] number) {//打印出来
int i=0;
while(number[i]==0) i++;
while(i<number.length){
System.out.print(number[i]);
i++;
}
System.out.print(" ");
}
private boolean Increment(int[] number) {//加1处理
int j=number.length-1;
number[j]=number[j]+1;
while(j>0){
if(number[j]>9){
number[j]-=10;
number[j-1]+=1;
}
j--;
}
if(number[0]>9){//最高位超过9,终止递增循环
return false;
}
else{
return true;
}
}