Sem usar strings (exceto quando necessário, como com entrada ou saída) calcule o enésimo dígito, a partir da esquerda , de um número inteiro (na base 10).
A entrada será fornecida neste formato:
726433 5
A saída deve ser:
3
como esse é o quinto dígito de "726433".
A entrada não conterá zeros à esquerda, por exemplo "00223".
Casos de teste / outros exemplos:
9 1 -> 9
0 1 -> 0
444494 5 -> 9
800 2 -> 0
Isso é código de golfe; menor quantidade de caracteres vence, mas qualquer função incorporada, como "nthDigit (x, n)", não é aceitável .
Aqui estão alguns pseudo-códigos para você começar:
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 você pode ver, sou novo no código do golfe e, embora eu ache um pouco injusto fazer uma pergunta antes mesmo de responder uma, gostaria muito de ver que tipo de resposta isso gera. :)
Edit : Eu estava esperando por respostas matemáticas, por isso não posso realmente aceitar respostas que dependem da conversão de strings em matrizes ou de poder acessar números como uma lista de dígitos.
Temos um vencedor
Escrito em "dc", 12 bytes. Por DigitalTrauma .