- 第N个数字
在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。
注意:
n 是正数且在32位整数范围内 ( n < 2^31)。
示例 1:
输入:
3
输出:
3
示例 2:
输入:
11
输出:
0
说明:
第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是0,它是10的一部分。
今天下午闲了一下,找个leetcode练手一下,
本题思路主要是先找出规律:
一到9不用说,10-99就是 100个数,看作一个整体的话是100,但是是是两位数,所以是2910,3位数以此类推
1…9, | 10…99, | 100…999, | 1000…9999…
1x9x10^0,| 2x9x10^1, | 3x9x10^2 , | 4x9x10^3…
搞清楚思路后,就可以开始码字了:
代码如下,不在家 所以拍下来的。。。见谅
:第1000个数字为 3
1000 -9 - 2*90 = 811
811/3 = 270 还多余一个1,所以需要取下一个数字的第一位数字,
所以数为100 + 270 -1+1=370
将数分解为[ 3,7,0],可以转为列表list, 先转为str
取值后:
由于是第一个数字 3,
测试结果也是3!其他数字也测试如此。。。以此作为记录。
没贴上代码,有空补上。