Без использования строк (кроме случаев, когда это необходимо, например, с вводом или выводом) вычислите 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 .