Print Numbers by Recursion
Written on October 21, 2015
Tweet
Print numbers from 1 to the largest number with N digits by recursion.
public class Solution {
/**
* @param n: An integer.
* return : An array storing 1 to the largest number with n digits.
*/
public static List<Integer> numbersByRecursion(int n) {
// write your code here
List<Integer> result = new ArrayList<Integer>();
if (n <= 0) return result;
result.add(0);//帮忙生成10, 20, 30....
int base = 1;
for (int i = 1; i <= n; i++) {
int size = result.size();
for (int k = 1; k <= 9; k++) {
for (int j = 0; j < size; j++) {
//result.add(base); 0 + base * k !!
result.add(result.get(j) + base * k);
}
}
base *= 10;
}
result.remove(0);
return result;
}
}