在此挑战中,您将根据好奇的序列计算数字。
您的输入是一个十进制非负整数。反转此整数中的位,然后对数字求平方即可得到所需的输出。
反转位时,不得在输入中使用任何前导零。例如:
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%。这不限于内置函数,如果您一点一点地遍历数字(通过移位或屏蔽或任何其他方法),它将也算作转换。我不知道这是否实际上可行,但是它可以激励您在序列中发现一个模式。
分数最低者获胜。