public class D18 {
public static void print1ToN(int n){
if(n<1){
return;
}
char[] num = new char[n];
Arrays.fill(num, '0');
//System.out.println(Arrays.toString(num));
while(!increment(num)){
printf(num);
}
//System.out.println(Arrays.toString(num));
}
private static void printf(char[]num){
boolean isValid =false;
for(int i = 0 ;i<num.length;i++){
if(num[i]!='0' && isValid ==false){
isValid = true;
}
if(isValid){
System.out.print(num[i]);
}
}
System.out.println();
}
private static boolean increment(char[] num) {
boolean isTakeOver = false;
int nTakeOver = 0;
for(int i=num.length-1;i>=0;i--){
int sum = num[i] - '0'+ nTakeOver;
if(i== num.length-1){
sum++;
}
if(sum>=10){
if(i == 0){
isTakeOver = true;
}else{
sum -= 10;
num[i] = (char) ('0'+sum);
nTakeOver = 1;
}
}else{
num[i] = (char) ('0'+sum);
break;
}
}
return isTakeOver;
}
public static void main(String[] args) {
print1ToN(10);
}
}
打印从1到最大的n位数
最新推荐文章于 2020-07-10 19:23:37 发布