Das älteste polnische Salzbergwerk in Bochnia * wurde im Jahr 1248 in Betrieb genommen, eine magische Zahl . Wir können sehen, dass es aus der Folge von Exponentiationen gleich 4 Ziffern ist: .
Da das Datum tatsächlich aus 4 Ziffern der Sequenz besteht, können wir es verlängern. Wir könnten den Vorgang wiederholen, bis wir unendlich sind. Die Sequenz würde so aussehen, wenn wir sie auf die Anzahl beschränken2048
124816326412825651210242048
Um es ein bisschen besser aussehen zu lassen, können wir die Zahlen trennen:
1|2|4|8|16|32|64|128|256|512|1024|2048
Versuchen wir eine benutzerdefinierte, längere Sequenz als das Datum. Nehmen wir an, wir möchten, dass es 5 Ziffern hat - es gibt mehr als eine Möglichkeit:
24816
81632
64128
Oder 3-stellige:
124
248
816
Wir könnten auch die 3-stelligen Zahlen hinzufügen, aber sagen wir mal, dass eine Sequenz haben muss mindestens zwei Zahlen haben muss .
* Es gibt keine Informationen dazu in der englischen Wikipedia. Wenn Sie die polnische Version eingeben - dann gibt es. Wenn Sie die Mine besuchen, werden die Arbeiter Ihnen auch mitteilen, dass sie im Jahre 1248 begonnen hat.
Die Herausforderung
Erstellen Sie eine Exponentiationssequenz wie in den obigen Beispielen mit 2 als Basis.
Wenn Sie eine Zahl zwischen 2 und 27 eingeben, geben Sie alle möglichen Teile der Sequenz (The 2048 eins oder größer, wenn Sie möchten) mit einer Anzahl von Ziffern aus, die der Eingabe entspricht. Sie können keine Zahl schneiden, also wie ausgeben481
ungültig, da 16 in zwei Hälften geschnitten wird.
Regeln:
- Standardlücken sind verboten.
- Sie können davon ausgehen, dass die Eingabe eine Zahl innerhalb des Bereichs ist.
- Ihr Programm kann Eingaben akzeptieren, die größer als der Bereich (28+) sind, aber die Punktzahl wird dadurch nicht erhöht / verringert.
- Leerzeichen in der Ausgabe werden ignoriert. Sie können like
124
oder like ausgeben4 8 16
. - Verschiedene Möglichkeiten sollten durch ein beliebiges Zeichen aus der Liste getrennt werden:
,./|
oder durch einen Zeilenvorschub. - Sie können als Array ausgeben.
- Jede Möglichkeit sollte mindestens 2 verschiedene Zahlen enthalten .
- Sie müssen einen Teil der Sequenz ausgeben. Sie können keine Zahlen mischen, die nicht nebeneinander stehen, wie z.
14
. - Eine fest codierte Ausgabe ist nicht zulässig. Sie können jedoch einen String / eine Nummer / ein Array mit der vollständigen Sequenz fest codieren.
- Eingang 27 sollte die vollständige 2048-Sequenz zurückgeben.
- Wie bereits erwähnt, schneiden Sie keine Zahlen . Ex.
16
muss bleiben16
- du kannst nicht verwenden481
- du musst verwenden4816
. - EDIT: Ich könnte etwas falsch gesagt haben; 2048 ist die letzte Nummer, die Ihr Programm unterstützen sollte. Sie können Unterstützung für größere ints hinzufügen.
Testfälle
Eingang: 2
12, 24, 48
Eingang: 3
124, 248, 816
Eingang: 4
1248, 4816, 1632, 3264
Eingang: 5
24816, 81632, 64128
Eingang: 27
124816326412825651210242048
Und spätere Nummern ...
Wenn ich in einem der Testfälle einen Fehler gemacht habe, teilen Sie mir die Frage mit oder bearbeiten Sie sie.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!