Wir haben bereits eine klappbare Nummer definiert hier .
Aber jetzt werden wir eine Super Folding Number definieren. Eine Super Folding-Zahl ist eine Zahl, die, wenn sie genügend oft gefaltet wird, irgendwann eine Zahl weniger als eine Zweierpotenz erreicht. Die Faltmethode unterscheidet sich geringfügig von der Frage nach der Faltnummer.
Der Faltalgorithmus lautet wie folgt:
Nehmen Sie die binäre Darstellung
zB 5882
1011011111010
Verschüttete es in drei Partitionen. Erste Hälfte, letzte Hälfte und mittlere Ziffer (wenn es eine ungerade Anzahl von Ziffern hat)
101101 1 111010
Wenn die mittlere Ziffer Null ist, kann diese Zahl nicht gefaltet werden
Die zweite Hälfte umkehren und die erste Hälfte überlagern
010111 101101
Fügen Sie die Ziffern hinzu
111212
- Wenn das Ergebnis 2s enthält, kann die Zahl nicht gefaltet werden, andernfalls ist die neue Zahl das Ergebnis des Faltalgorithmus.
Eine Zahl ist eine Super-Faltnummer, wenn sie zu einer fortlaufenden Folge von Einsen gefaltet werden kann. (Alle Faltnummern sind auch Super-Faltnummern)
Ihre Aufgabe ist es, Code zu schreiben, der eine Zahl aufnimmt und einen wahrheitsgemäßen Wert ausgibt, wenn die Zahl eine Super-Folding-Zahl ist und ansonsten falsch ist. Sie werden nach der Größe Ihres Programms bewertet.
Beispiele
5200
In Binär konvertieren:
1010001010000
Halbieren:
101000 1 010000
Die Mitte ist eine, also überlagern wir die Hälften:
000010
101000
Fügte sie hinzu:
101010
Keine Zweien, also fahren wir fort. In zwei Hälften teilen:
101 010
Falten:
010
101
111
Das Ergebnis ist 111
(7 in Dezimalzahl), dies ist also eine Super-Faltzahl.
Testfälle
Die ersten 100 Super Folding Numbers sind:
[1, 2, 3, 6, 7, 8, 10, 12, 15, 20, 22, 28, 31, 34, 38, 42, 48, 52, 56, 63, 74, 78, 90, 104, 108, 120, 127, 128, 130, 132, 142, 150, 160, 170, 178, 192, 204, 212, 232, 240, 255, 272, 274, 276, 286, 310, 336, 346, 370, 400, 412, 436, 472, 496, 511, 516, 518, 524, 542, 558, 580, 598, 614, 640, 642, 648, 666, 682, 704, 722, 738, 772, 796, 812, 852, 868, 896, 920, 936, 976, 992, 1023, 1060, 1062, 1068, 1086, 1134, 1188, 1206, 1254, 1312, 1314, 1320, 1338, 1386, 1440, 1458, 1506, 1572, 1596]
3
wieder in die Testfälle geschlichen, wenn ich mich nicht irre ? Ich kann nicht sehen, wie es gefaltet werden kann, da es sich aufteilt1 1
und sofort ein gibt2
. Oder sagen Sie, dass es auch zählt, es nullmal zu falten?