题目:第n位的数是多少
给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …] 中找出并返回第 n 位上的数字。
示例 1:
输入:n = 3
输出:3
示例 2:
输入:n = 11
输出:0
解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是 0 ,它是 10 的一部分。
class Solution {
public int findNthDigit(int n) {
StringBuilder sb = new StringBuilder(n);
int maxVal = n;
// 当n足够大的时,根本加不到对应n,加到n/3就能够获取index = n
if (n > 10000000) {
maxVal = n / 3;
}
for (int i = 0; i <= maxVal; i++) {
sb.append(i);
}
String s = sb.toString();
return s.charAt(n) - '0';
}
}