public static void main(String[] args){
demo()
}
private void demo() {
final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
new Thread(new Runnable() {
@Override
public void run() {
int nNumber = 5;
try {
if (reader.read()!=-1){
String inPut= reader.readLine();
try {
nNumber =Integer.valueOf(inPut);
}catch (NumberFormatException e){
System.out.print("请输入正整数!");
}
}
} catch (IOException e) {
e.printStackTrace();
}
char[] num = new char[nNumber];
for (int i = 0;i < 10;i++){
num[0] = (char)('0'+i);
inc(num,nNumber,0);
}
}
}).start();
}
/**
*
* @param num 代表字符数组
* @param len len 代表祖父数组的长度
* @param i i 代表的是字符数组上的某一位
*/
private void inc(char[] num,int len,int i){
int j = 0;
if (i == len-1){
print(num);
return;
}
for (j = 0 ; j < 10 ; j++){
num[i + 1] = (char) ('0'+j);
inc(num, len, i + 1);
}
}
/**
* 此方法用于将字符数组(过滤高位的0,以符合阅读习惯)输出到控制台
* @param num 字符数组
*/
private void print(char[] num){
int i = 0;
int len = num.length;
while (i<len && num[i] == '0'){
i++;
}
char[] number = new char[len-i];
for (int j = i;j<len;j++){
number[j-i] = num[j];
}
System.out.print(number);
System.out.println();
}