Bez użycia łańcuchów (z wyjątkiem, gdy jest to konieczne, na przykład z wejściem lub wyjściem) obliczyć n-tą liczbę od lewej liczby całkowitej (w podstawie 10).
Dane wejściowe zostaną podane w tym formacie:
726433 5
Dane wyjściowe powinny wynosić:
3
ponieważ jest to piąta cyfra „726433”.
Dane wejściowe nie będą zawierać zer wiodących, np. „00223”.
Przypadki testowe / dalsze przykłady:
9 1 -> 9
0 1 -> 0
444494 5 -> 9
800 2 -> 0
To jest kod golfowy; wygrywa najmniej znaków, ale jakiekolwiek wbudowane funkcje, takie jak „nthDigit (x, n)” są niedopuszczalne .
Oto pseudo-kod na początek:
x = number
n = index of the digit
digits = floor[log10[x]] + 1
dropRight = floor[x / 10^(digits - n)]
dropLeft = (dropRight / 10 - floor[dropRight / 10]) * 10
nthDigit = dropLeft
Jak widać, jestem nowy w kodowaniu golfa i choć myślę, że to trochę niesprawiedliwe, że zadaję pytanie, zanim jeszcze na nie odpowiem, naprawdę chciałbym zobaczyć, jakie to generuje odpowiedzi. :)
Edycja : Miałem nadzieję na matematyczne odpowiedzi, więc nie mogę zaakceptować odpowiedzi, które polegają na konwersji ciągów znaków na tablice lub na dostępie do liczb jako listy cyfr.
Mamy zwycięzcę
Napisane w „dc”, 12 bajtów. Przez DigitalTrauma .