第N个数字
给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …] 中找出并返回第 n 位上的数字。
我觉得这题是哪以理解的
看这个题解
func findNthDigit(n int) int {digit := 1start := 1count := 9for n > count {n -= countdigit++start = start * 10count = 9*start*digit}//找到当前的数是多少num := start + (n-1)/digitstrNum := strconv.Itoa(num)//找到当前这个数的下标digitIndex := (n - 1) % digitdigitStr := string(strNum[digitIndex])digitInt, _ := strconv.Atoi(digitStr)return digitInt
}
num := base + (n-1) / digit
这个公式是怎么得出来的 为什么要减一 除digit很好理解 因为这是找到你是第几位数
-1 我的理解是base已经占据了第一位 所以 如果你的n是10的话 不减1 得到的num就是11