题目链接:400. 第 N 位数字
设 $N$ 位 数字,属于 $n_d$ 位数。那么它就是第 $ n = N-\sum_{i=1}^{n_d - 1}{count(i)}$ 个 $n_d$ 位数,其中 $count(i)$ 是 $i$ 位数的个数,$n$ 从 $0$ 开始计数。
\[count(i) = 9 \times 10^{i-1}\]那么,第 $N$ 位数字,即 $\lfloor (n-1) / n_d\rfloor + 10^{n_d - 1}$ 的第 $(n-1)\% n_d$位。
class Solution:
def findNthDigit(self, n: int) -> int:
the_count_of_n_digit_number = lambda nd: 9 * (10 ** (nd - 1))
nd = 1
while (n - nd * the_count_of_n_digit_number(nd)) > 0:
n -= nd * the_count_of_n_digit_number(nd)
nd += 1
return int(str((n - 1) // nd + 10 ** (nd - 1))[(n - 1) % nd])