package main
import "strconv"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
func findNthDigit(n int) int {
// write code here
// 从下标 0 开始计算
// 区间
// 0 (0,10) [10,100) [100,1000)...
// 1 9 99-9 999-99
// 用于确定 n 是几位数
digit := 1
// 记录每个区间的起始数字
// 1 10 100 ...
start := 1
// 记录当前区间共有几位数
// 0 (0,10) [10,100) [100,1000)...
// 1 9*1*1 9*10*2 9*100*3
sum := 9
for n > sum {
n -= sum
start *= 10
digit++
sum = 9 * start * digit
}
// 定位 n 在哪个数字上
num := start + (n-1)/digit
// 定位 n 在 num 的索引位置
index := (n - 1) % digit
numStr := strconv.Itoa(num)
return int(numStr[index] - '0')
}