これは、触発された問題13 -非繰り返しバイナリのHP CodeWarsの最近の競争を。
ランダムな10進数を考えてみましょう。
727429805944311
そしてそのバイナリ表現を見てください:
10100101011001011111110011001011101010110111110111
次に、そのバイナリ表現を、数字0
と1
交互のサブシーケンスに分割します。
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
そして、各サブシーケンスを10進数に変換します。
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
タスク
入力として単一の正の整数を取り、上記のプロセスで取得した正の整数のシーケンスを出力します。
詳細
- 入力と出力は10進数または単項でなければなりません。
- 出力の数字は、理にかなった、人間が読める形式で区切る必要があり、10進数または単項でなければなりません。空白に制限はありません。有効な出力スタイル:
[1,2,3]
、1 2 3
、リテラル改行等、あります1\n2\n3
\n
テストケース
Input | Output
0 | 0
1 | 1
2 | 2
3 | 1 1
4 | 2 0
5 | 5
6 | 1 2
7 | 1 1 1
8 | 2 0 0
9 | 2 1
10 | 10
50 | 1 2 2
100 | 1 2 2 0
1000 | 1 1 1 1 10 0 0
10000 | 2 1 1 2 0 2 0 0 0
12914 | 1 2 2 1 1 2 2
371017 | 5 42 10 2 1
追記:出力のすべての数字は、(2^k-1)/3
またはの形式である必要があり2*(2^k-1)/3
ます。つまり、0 1 2 5 10 21, 42, 85, 170, ...
ある、A000975 OEISインチ
|tac
それから私の答えに残ります:)