400 Nth Digit

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …

Note: n is positive and will fit within the range of a 32-bit signed integer (n < 231).

Example 1:

Input:
3

Output:
3

Example 2:

Input:
11

Output:
0

Explanation:
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.
 1 2 3 4 5 6 7 8 9 10 11 12 13 func findNthDigit(n int) int { length := 1 rangeCount := 9 num := 1 for n > length*rangeCount { n -= length * rangeCount length += 1 rangeCount *= 10 num *= 10 } num += (n - 1) / length return int(strconv.Itoa(num)[(n-1)%length] - '0') }
 1 2 3 4 5 6 7 8 9 10 11 def findNthDigit(n: int) -> int: length = 1 # number of digits: 1, 2, 3 ... range_count = 9 # count of numbers for current length: 9, 90, 900 ... num = 1 # current number: 1, 10, 100, 1000 ... while n > length * range_count: n -= length * range_count length += 1 range_count *= 10 num *= 10 num += (n-1) / length return int(str(num)[(n-1) % length])