Sin usar cadenas (excepto cuando sea necesario, como con entrada o salida), calcule el enésimo dígito, desde la izquierda , de un entero (en la base 10).
La entrada se dará en este formato:
726433 5
La salida debe ser:
3
como ese es el quinto dígito de "726433".
La entrada no contendrá ceros a la izquierda, por ejemplo, "00223".
Casos de prueba / ejemplos adicionales:
9 1 -> 9
0 1 -> 0
444494 5 -> 9
800 2 -> 0
Este es el código de golf; menor cantidad de caracteres victorias, pero cualquier construido en funciones tales como "nthDigit (x, n)" son no aceptable .
Aquí hay algunos pseudocódigos para comenzar:
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
Como puede ver, soy nuevo en el código de golf, y aunque creo que es un poco injusto hacer una pregunta antes de responderla, realmente me gustaría ver qué tipo de respuestas genera. :)
Editar : esperaba respuestas matemáticas, por lo que realmente no puedo aceptar respuestas que dependen de la conversión de cadenas en matrices o de poder acceder a los números como una lista de dígitos.
Tenemos un ganador
Escrito en "dc", 12 bytes. Por DigitalTrauma .