このチャレンジでは、奇妙なシーケンスから数値を計算します。
入力は、単一の10進数の非負整数です。この整数のビットを逆にしてから、数値を2乗して必要な出力を取得します。
ビットを反転する場合、入力に先行ゼロを使用しないでください。例えば:
26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121
このシーケンスの最初の25の入力/出力:
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
ソリューションは、任意のサイズの整数で機能するはずです。あなたの言語がそれらを使用する便利な組み込みメソッドを持っていない場合、あたかもそれがそうであるかのようにあなたの答えを実装します。その後、回答が多数の場合に中断された場合は免除されます。ただし、制限されたドメイン(ルックアップテーブルなど)でのみ機能するトリック/バウンドを使用しないでください。
スコアは、ソースコードのバイト数です。
数値をバイナリに変換したり、バイナリから変換したりしない場合、-50%のボーナス。これはビルトインに限定されず、ビットごとに(シフト、マスキング、またはその他の方法で)数をループする場合、変換としてもカウントされます。これが実際に可能かどうかはわかりませんが、シーケンス内のパターンを見つけるインセンティブを与えます。
最小スコアが勝ちます。