输入数字 n
,按顺序打印出从 1
到最大的 n
位十进制数。比如输入 3
,则打印出 1
、2
、3
一直到最大的 3
位数 999
。
- 用返回一个整数列表来代替打印
n
为正整数
示例1
输入:
1
返回值:
[1,2,3,4,5,6,7,8,9]
其实我不太清楚这道题是要考察什么(苦笑),几乎都是一个循环能解决的事情,仔细想了一下,也并没有想到其他比较令人耳目一新的做法,用Math.pow(10, n) - 1
取出最大的边界条件,Java
实现如下:
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型 最大位数
* @return int整型一维数组
*/
public int[] printNumbers(int n) {
double len = Math.pow(10, n) - 1;
int[] result = new int[(int) len];
for (int i = 0; i < len; i++) {
result[i] = i + 1;
}
return result;
}
}
C++
代码实现如下:
class Solution {
public:
vector<int> printNumbers(int n) {
vector<int> arr;
int i=pow(10,n)-1;
for(int j=1;j<=i;j++)
arr.push_back(j);
return arr;
}
};