In dieser Herausforderung berechnen Sie Zahlen aus einer merkwürdigen Folge.
Ihre Eingabe ist eine einzelne dezimale nichtnegative Ganzzahl. Kehren Sie die Bits in dieser Ganzzahl um und quadrieren Sie die Zahl, um die gewünschte Ausgabe zu erhalten.
Beim Umkehren der Bits dürfen Sie keine führenden Nullen in der Eingabe verwenden. Beispielsweise:
26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121
Die ersten 25 Ein- / Ausgänge dieser Sequenz:
0: 0
1: 1
2: 1
3: 9
4: 1
5: 25
6: 9
7: 49
8: 1
9: 81
10: 25
11: 169
12: 9
13: 121
14: 49
15: 225
16: 1
17: 289
18: 81
19: 625
20: 25
21: 441
22: 169
23: 841
24: 9
Ihre Lösung sollte für Ganzzahlen beliebiger Größe funktionieren. Wenn in Ihrer Sprache keine praktische Methode zur Verwendung vorhanden ist, implementieren Sie Ihre Antwort so, als ob dies der Fall wäre. Sie werden dann entschuldigt, wenn Ihre Antwort für große Zahlen bricht. Verwenden Sie jedoch keine Tricks / Grenzen, die nur für eine begrenzte Domäne funktionieren (z. B. eine Nachschlagetabelle).
Ihre Punktzahl ist die Anzahl der Bytes des Quellcodes.
-50% Bonus, wenn Sie die Zahl nie in eine Binärzahl umwandeln. Dies ist nicht auf integrierte Funktionen beschränkt. Wenn Sie die Zahl Bit für Bit durchlaufen (entweder durch Verschieben oder Maskieren oder eine andere Methode), wird dies ebenfalls als Konvertierung gewertet. Ich weiß nicht, ob dies tatsächlich möglich ist, aber es gibt einen Anreiz, ein Muster in der Sequenz zu erkennen.
Kleinste Punktzahl gewinnt.