打印1到最大的n位数
主要的逻辑在Increase这个函数。从末位开始循环,如果当前位为9,则置0后向前一位循环,一直找到不为9的位置后加1即可。如果循环到了最前一位,则退出。
/**
*
* @param n
* 打印1到最大的n位数
*/
public void print1ToN(int n){
int[] num=new int[n];
while(Increase(num,n)){
print(num,n);
}
}
private void print(int[] num,int n) {
int i=0;
while(num[i]==0){
i++;
}
for(;i<n;i++){
System.out.print(num[i]);
}
}
private boolean Increase(int[] num,int n) {
int i=n-1;
while(num[i]==9){
if(i==0){
return false;
}
num[i]=0;
i--;
}
num[i]++;
return true;
}