Eingang:
Eine positive ganze Zahl n, die aus Ziffern im Bereich von 0 bis 9 besteht .
Herausforderung:
Wenn d die höchste Ziffer in der ganzen Zahl ist, wird angenommen, dass die Basis der Zahl d + 1 ist . Wenn die Ganzzahl beispielsweise 1256 ist, nehmen Sie an, dass sie zur Basis 7 gehört , wenn sie 10110 ist, dann nehmen Sie an, dass sie zur Basis 2 (binär) gehört, und wenn sie 159 ist, dann ist sie dezimal.
Führen Sie nun die folgenden Schritte aus, bis Sie entweder 1: eine Ganzzahl zur Basis 10 oder 2: eine einstellige Ganzzahl erreichen.
- Konvertiere die ganze Zahl von base- (d + 1) zu base-10
- Finden Sie die Basis dieser neuen Ganzzahl (wieder base- (d + 1), wobei d die höchste Ziffer in der neuen Zahl ist)
- Fahren Sie mit Schritt 1 fort .
Beispiele:
Angenommen, die Eingabe ist n = 413574 . Die höchste Ziffer d = 7 , also ist dies die Basis 8 (oktal). Wandle dies in eine Dezimalzahl um und erhalte 137084 . Die höchste Ziffer d = 8 , das ist also die Basis 9 . Wandle dies in eine Dezimalzahl um und erhalte 83911 . Die höchste Ziffer ist 9 , das ist also eine Dezimalzahl, und wir hören auf. Die Ausgabe soll 83911 sein .
Angenommen, die Eingabe ist n = 13552 . Die höchste Ziffer ist d = 5 , dies ist also die Basis 6 . Wandle dies in eine Dezimalzahl um und erhalte 2156 . Die höchste Ziffer d = 6 , also ist dies die Basis 7 . Wandle dies in eine Dezimalzahl um und erhalte 776 . Die höchste Ziffer ist d = 7 , dies ist also die Basis 8 . Wandle dies in eine Dezimalzahl um und erhalte 510 . Die höchste Ziffer ist d = 5 , dies ist also die Basis 6 . Wandle dies in eine Dezimalzahl um und erhalte 186 . Die höchste Ziffer ist 8 , dies ist also die Basis 9 . Wandle dies in eine Dezimalzahl um und erhalte 159. Die höchste Ziffer ist 9 , das ist also eine Dezimalzahl und wir hören auf. Die Ausgabe soll 159 sein .
Angenommen, die Eingabe ist n = 17 . Dies gibt uns 15 , dann 11 , dann 3 , die wir ausgeben, da es eine einzelne Ziffer ist.
Testfälle:
5
5
17
3
999
999
87654321 (base-9 -> 42374116 in decimal -> base-7 -> 90419978 in decimal)
9041998
41253 (5505 -> 1265 -> 488 -> 404 -> 104 -> 29)
29
Anmerkungen:
- Standardregeln für E / A, Lücken usw. Sie können die Eingabe als Zeichenfolge verwenden
- Erklärungen sind erwünscht
- Sie können integrierte Base-Conversion-Befehle verwenden
- Lösungen, die die in der Sprache integrierten Funktionen zur Basiskonvertierung (sofern vorhanden) nicht verwenden, sind willkommen, auch wenn sie viel länger dauern als die offensichtliche Vorgehensweise bei Verwendung integrierter Funktionen.
Anscheinend ist dies OEIS A091047 .