400.nth-digit.go 239 B

12345678910111213
  1. func findNthDigit(n int) int {
  2. nines, digits := 9, 1
  3. for nines*digits < n {
  4. n -= nines * digits
  5. nines *= 10
  6. digits++
  7. }
  8. num := nines/9 + (n-1)/digits
  9. for i := 0; i < digits-(n-1)%digits-1; i++ {
  10. num /= 10
  11. }
  12. return num % 10
  13. }