剑指 Offer 17. 打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
来源:LeetCode
输入: n = 1 输出: [1,2,3,4,5,6,7,8,9]
n=1,最大的数是9(10的一次方减1) n=2,最大的数是99(10的二次方减1) n=3,最大的数是999(10的三次方减1) … 所以最大的数其实是10的n次方减1.
需要定义一个数组存放结果,大小就是10的n次方减1.
但是需要注意的是,pow(x,y)方法需要保证x和y都是double类型的,这就多了一步需要将pow的结果再进行强制转换成int类型的。
class Solution {
public int[] printNumbers(int n) {
double sum = Math.pow(10.0,(double)n);
int sums = (int)sum;
int[] res = new int[sums-1];
for(int i=1;i
关注
打赏