请考虑以下过程:
取一些非负整数N。
例如N =
571以二进制形式表示,没有前导零。(零本身是唯一的例外,成为
0。)例如
571=1000111011二进制在此二进制表示中,将连续的1和0分开。
例如
1000111011→1,000,111,0,11从最长到最短对运行进行排序。
例如
1,000,111,0,11→000,111,11,1,0用交替
1的和替换每次运行中的所有数字0,始终以开头1。例如
000,111,11,1,0→111,000,11,0,1连接结果以获得新的二进制数。
例如
111,000,11,0,1→1110001101=909十进制
当您绘制由此过程产生的值时,会得到一个漂亮的图形:
希望我将为什么将所得序列称为Temple Skyline序列是显而易见的:
挑战
编写一个使用非负整数N并打印或返回相应的Temple Skyline序列号的程序或函数。您的输入和输出都应为十进制。
例如,如果输入为571输出,则应为909。
以字节为单位的最短代码获胜。
作为参考,以下是从N = 0到20的顺序中的术语:
0 1
1 1
2 2
3 3
4 6
5 5
6 6
7 7
8 14
9 13
10 10
11 13
12 12
13 13
14 14
15 15
16 30
17 29
18 26
19 25
20 26


.BQ替代的jQ2,这意味着你可以失去之间的空间8和前面2。