Berechnen Sie ohne Verwendung von Zeichenfolgen (außer bei Bedarf, z. B. bei Eingabe oder Ausgabe) die n-te Ziffer einer Ganzzahl von links (in Basis 10).
Die Eingabe erfolgt in folgendem Format:
726433 5
Die Ausgabe sollte sein:
3
da dies die fünfte Ziffer von "726433" ist.
Eingabe wird nicht enthält führenden Nullen, z. B. "00223".
Testfälle / weitere Beispiele:
9 1 -> 9
0 1 -> 0
444494 5 -> 9
800 2 -> 0
Das ist Code Golf; Die geringste Anzahl von Zeichen gewinnt, aber alle eingebauten Funktionen wie "nthDigit (x, n)" sind nicht akzeptabel .
Hier ist ein Pseudocode, mit dem Sie beginnen können:
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
Wie Sie sehen, ist es etwas unfair, wenn ich eine Frage stelle, bevor ich überhaupt eine beantworte. Ich würde gerne sehen, welche Art von Antworten dadurch generiert werden. :)
Bearbeiten : Ich hatte auf mathematische Antworten gehofft, daher kann ich Antworten, die auf der Konvertierung von Zeichenfolgen in Arrays oder dem Zugriff auf Zahlen als Ziffernliste beruhen, nicht wirklich akzeptieren.
Wir haben einen Sieger
Geschrieben in "dc", 12 Bytes. Von DigitalTrauma .