Advertisement
Pug_coder

kSymbol

Mar 23rd, 2021
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.51 KB | None | 0 0
  1. package main
  2. import "fmt"
  3. func pow10(a, b int64) int64 {
  4.     ch := a
  5.     var p int64
  6.     p = 1
  7.     for ; b > 0 ; {
  8.         if b & 1 != 0 {
  9.             p *= ch
  10.         }
  11.         ch *= ch
  12.         b >>= 1
  13.     }
  14.     return p
  15. }
  16. func main() {
  17. var (
  18.     x int64
  19.     pa int64
  20.     now int64
  21. )
  22. fmt.Scanf("%d", &x)
  23. pa = 1
  24. for ; x - pa * 9 * pow10(10, (pa - 1)) >= 0 ; {
  25.     x -= pa * 9 * pow10(10, (pa - 1))
  26.     pa += 1
  27. }
  28. now = pow10(10, (pa - 1)) + (x/pa)
  29. var i int64
  30. for i = 0; i < (pa - 1 - (x % pa)); i++ {
  31.     now = (now / 10)
  32. }
  33. now %= 10
  34. fmt.Print(now)
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement