目录
题目
Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …
Example1:
Input:
3Output:
3Example2:
Input:
11Output:
0Explanation:
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.Note:
n is positive and will fit within the range of a 32-bit signed integer (n < 231).
解决方案
1 | public class Solution { |
注意事项
- 是一道数学规律题目。给出从1开始递增1的无限整数序列。要求返回第n位的数字。这个数字可能是整数序列中某个数的某一位。
- 主要规律如下:
从1开始的整数:位数为1的: 1 ~9 , 共9 个;
位数为2的: 10 ~99, 共99个;
位数为3的: 100 ~999 ,共999个;
位数为4的: 1000~9999,共9999个;
… … - 根据如上规律对所有数字进行分组,也就是位数相同的整数在一组。给定一个数,先通过while循环判断在哪个组里。之后在这个组中,判断它属于哪个数字。