Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 1.4 KB

400-nth-digit.md

File metadata and controls

64 lines (44 loc) · 1.4 KB

400. Nth Digit - 第N个数字

在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 个数字。

注意:
是正数且在32为整形范围内 ( n < 231)。

示例 1:

输入:
3

输出:
3

示例 2:

输入:
11

输出:
0

说明:
第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是0,它是10的一部分。

题目标签:Math

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
python3 36 ms N/A
class Solution:
    def findNthDigit(self, n):
        """
        :type n: int
        :rtype: int
        """
        digs = 0
        while True:
            digs += 1
            if n <= digs * (10**digs - 10**(digs-1)):
                break
        base = 10 ** (digs-1)
        surplus = n - sum((9 * 10 ** d * (d+1) for d in range(digs-1))) - 1
        return int(str(surplus//digs+base)[surplus%digs])