题目
数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。
请写一个函数,求任意第n位对应的数字。
思路
我们注意到,如果:
- 将 01234567891⋯ 中的每一位称为
位
,记为n
; - 将 10,11,12,⋯ 称为
数字
,记为num
; - 数字
10
是一个两位数,称此数字的位数
为2
,记为digit
; - 每
digit
位数的起始数字(即:1,10,100,⋯),记为start
。 - 个位数共有
1 ~ 9
九个数字,称个位数的数字数量
为9
,记为num_count
。 - 十位数共有
10~99
90个数字,每个数字有两位,共占序列化90*2=180
位,称十位数的数位
数量 为180
, 记为count
。
可以得到下表(个