一.题目:
找出一个连续的自然数序列中,第N位数字是多少。
Example 1:
Input:
3
Output:
3
Example 2:
Input:
11
Output:
0
Explanation:
The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.
二.解题思路:
分三步走.先确定这个数字是十位数字/百位数字/千位数字/...然后计算它具体属于哪个数字,最后计算它属于这个数字的第几位.
代码如下:
class Solution(object):
def findNthDigit(self, n):
"""
:type n: int
:rtype: int
"""
_len = 1
cnt = 9
start = 1
while n > _len * cnt:
n -= _len * cnt
_len += 1
cnt *= 10
start *= 10
start += (n - 1) / _len #start代表具体是哪个数字
return int(str(start)[(n - 1) % _len])