Не використовуючи рядки (за винятком випадків, коли це необхідно, наприклад, із введенням або виведенням), обчисліть n-ю цифру зліва з цілого числа (в базі 10).
Введення буде надано у такому форматі:
726433 5
Вихід повинен бути:
3
як це п'ята цифра "726433".
Введення не буде містити провідні нулі, наприклад, "00223".
Тестові приклади / подальші приклади:
9 1 -> 9
0 1 -> 0
444494 5 -> 9
800 2 -> 0
Це код гольфу; виграє найменша кількість символів, але будь-які вбудовані функції, такі як "nthDigit (x, n)" ", неприйнятні .
Ось кілька псевдокодів для початку роботи:
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
Як ви бачите, я новачок у коді гольфу, і хоча я думаю, що це трохи несправедливо, що я задаю питання, перш ніж я навіть відповів на нього, я дуже хотів би побачити, які відповіді це породжує. :)
Редагувати : Я сподівався на математичні відповіді, тому я не можу реально приймати відповіді, які покладаються на перетворення рядків у масиви чи можливість доступу до чисел у списку цифр.
У нас є переможець
Написано "dc", 12 байт. За допомогою DigitalTrauma .