Dies wurde inspiriert von Problem 13 - Non-Repeating Binary der letzten Konkurrenz von HP CodeWars.
Nehmen wir zum Beispiel eine zufällige Dezimalzahl
727429805944311
und schauen Sie sich seine binäre Darstellung an:
10100101011001011111110011001011101010110111110111
Teilen Sie nun diese Binärdarstellung in Teilfolgen auf, in denen sich die Ziffern 0
und 1
abwechseln.
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
Und konvertiere jede Teilsequenz zurück in eine Dezimalzahl.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
Die Aufgabe
Nehmen Sie eine einzelne positive Ganzzahl als Eingabe und geben Sie die Folge positiver Ganzzahlen aus, die durch den obigen Prozess erhalten wurden.
Einzelheiten
- Eingabe und Ausgabe müssen dezimal oder unär sein.
- Zahlen in der Ausgabe müssen sinnvoll und für den Menschen lesbar getrennt und dezimal oder unär sein. Keine Einschränkung des Leerraums. Gültige Ausgabestile:
[1,2,3]
,1 2 3
,1\n2\n3
wo\n
sind wörtliche Zeilenumbrüche usw.
Testfälle
Input | Output
0 | 0
1 | 1
2 | 2
3 | 1 1
4 | 2 0
5 | 5
6 | 1 2
7 | 1 1 1
8 | 2 0 0
9 | 2 1
10 | 10
50 | 1 2 2
100 | 1 2 2 0
1000 | 1 1 1 1 10 0 0
10000 | 2 1 1 2 0 2 0 0 0
12914 | 1 2 2 1 1 2 2
371017 | 5 42 10 2 1
Zusätzlicher Hinweis: Alle Zahlen in der Ausgabe sollten die Form (2^k-1)/3
oder haben 2*(2^k-1)/3
. Das heißt, 0 1 2 5 10 21, 42, 85, 170, ...
das ist A000975 im OEIS.
|tac
werde dann in meiner antwort bleiben :)