题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。
此题考的是内存溢出问题的解决方案
000 ,001,002,...010...,999
[code]
char[] num = new char[n];
for(int i=0;i<10;i++){ //装配个位
num[n-1]=Char.valueOf(i);
print(num,n-2);
}
public void print(char[] num,int currIndex){
if(currIndex==-1){
boolean isFirst = true;
for(int i=0;i<num.length;i++){
if(num[i]==null||num[i]=='0'&&isFirst){
continue;
}else{
System.out.print(num[i]);
}
}
System.out.println();
return;
}
for(int i=0;i<num.length;i++){
num[currIndex]=Char.valueOf(i);
print(num,currIndex-1);
}
}
[/code]
此题考的是内存溢出问题的解决方案
000 ,001,002,...010...,999
[code]
char[] num = new char[n];
for(int i=0;i<10;i++){ //装配个位
num[n-1]=Char.valueOf(i);
print(num,n-2);
}
public void print(char[] num,int currIndex){
if(currIndex==-1){
boolean isFirst = true;
for(int i=0;i<num.length;i++){
if(num[i]==null||num[i]=='0'&&isFirst){
continue;
}else{
System.out.print(num[i]);
}
}
System.out.println();
return;
}
for(int i=0;i<num.length;i++){
num[currIndex]=Char.valueOf(i);
print(num,currIndex-1);
}
}
[/code]