W tym wyzwaniu wyliczysz liczby z osobliwej sekwencji.
Dane wejściowe są liczbą całkowitą nieujemną dziesiętną. Odwróć bity w tej liczbie całkowitej, a następnie kwadrat, aby uzyskać wymaganą moc wyjściową.
Podczas odwracania bitów nie wolno używać żadnych początkowych zer na wejściu. Na przykład:
26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121
Pierwsze 25 wejść / wyjść tej sekwencji:
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
Twoje rozwiązanie powinno działać na liczbach całkowitych o dowolnym rozmiarze. Jeśli w Twoim języku nie ma wygodnej wbudowanej metody korzystania z nich, zaimplementuj swoją odpowiedź tak, jakby miała. Jesteś wtedy usprawiedliwiony, jeśli twoja odpowiedź załamie się w przypadku dużych liczb. Nie należy jednak używać sztuczek / ograniczeń, które działają tylko w przypadku ograniczonej domeny (takiej jak tabela odnośników).
Twój wynik to liczba bajtów kodu źródłowego.
-50% bonusu, jeśli nigdy nie zmienisz numeru na / z binarnego. Nie ogranicza się to do poleceń wbudowanych, jeśli liczba zostanie zapętlona krok po kroku (poprzez przesunięcie, maskowanie lub inną metodę), będzie również liczona jako konwersja. Nie wiem, czy jest to faktycznie możliwe, ale zachęca to do wykrycia wzoru w sekwencji.
Najmniejszy wynik wygrywa.