剑指offer题解汇总 Java实现
https://blog.csdn.net/guliguliguliguli/article/details/126089434
本题链接
https://www.nowcoder.com/exam/oj/ta?difficulty=2&page=1&pageSize=50&search=&tpId=13&type=265
题目
思路 & 代码
题目要求打印出从1到最大的n位十进制数,本题中n的取值范围是1、2、3、4、5
最大的1位十进制数是9,9 = 1 0 1 10^{1} 101 - 1
最大的2位十进制数是99,99 = 1 0 2 10^{2} 102 - 1
最大的3位十进制数是999,999 = 1 0 3 10^{3} 103 - 1
最大的4位十进制数是9999,9999 = 1 0 4 10^{4} 104 - 1
最大的5位十进制数是99999,99999 = 9 = 1 0 5 10^{5} 105 - 1
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param n int整型 最大位数
* @return int整型一维数组
*/
public int[] printNumbers(int n) {
//1 --- 1~9
//2 --- 1~99
//3 --- 1~999
//4 --- 1~9999
//5 --- 1~99999
int len = (int) (Math.pow(10, n) - 1);
int[] arr = new int[len];
for (int i = 0; i < len; i++) {
arr[i] = i + 1;
}
return arr;
}
}
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param n int整型 最大位数
* @return int整型一维数组
*/
public int[] printNumbers(int n) {
int len = 1;
for (int i = 0; i < n; i++) {
len *= 10;
}
len -= 1;
int[] arr = new int[len];
for (int i = 0; i < len; i++) {
arr[i] = i + 1;
}
return arr;
}
}