次のプロセスを検討してください。
負でない整数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結果を連結して、新しい2進数を取得します。
例えば
111、000、11、0、1→1110001101=909小数で
このプロセスによって生成された値をプロットすると、かなりきれいなグラフが得られます。
そして、結果のシーケンスをTemple Skylineシーケンスと呼んでいる理由が明らかになることを期待しています
チャレンジ
非負の整数Nを取り込んで、対応するTemple Skylineのシーケンス番号を出力または返すプログラムまたは関数を作成します。入力と出力は両方とも10進数でなければなりません。
入力された場合、たとえば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ます。