このnumberphileビデオで言及されている「2進数で2進数」表記に基づいて、入力として単一の数値を取り、2が許可される「バイナリ」システムでその数値のすべてのバリエーションを出力する関数を記述します。
ルール
- コードは完全なプログラムではなく、関数/メソッドでなければなりません
- 入力は、関数への唯一のパラメーターとして渡される整数です
- 出力は、「2進数で2進数」表記に変換された入力番号のすべての有効なバリエーションです
- 出力は関数の戻り値ですが、明らかな限り(たとえば、3つのint、3つの文字列、コンマ/スペースで区切られた文字列、intの配列など)、順序は重要ではありません。
- まれに、結果を得るために言語に組み込み関数が含まれている場合は、許可されません
- バイト単位の最短コードが勝者です
出力の説明
あなたが番号を渡されている場合の例では、9、あなたにバイナリに変換することができ1001ますが、あなたが許可されている場合2、それぞれの位置でSを、あなたはまた、それを書くことができます201(つまり2*4 + 0*2 + 1*1)、または121(つまり1*4 + 2*2 + 1*1)、この表に示すように:
+----+----+----+----+
| 8s | 4s | 2s | 1s |
+----+----+----+----+
| 1 | 0 | 0 | 1 |
| 0 | 2 | 0 | 1 |
| 0 | 1 | 2 | 1 |
+----+----+----+----+
したがって、渡された9場合、関数は3つの数値1001、201およびを返す必要があります121。
フォーマットと順序は、それが明らかだとして(すなわち、無関係な[121,201,1001]、"0201 0121 1001"、("1001","121","201")の入力が与えられたとき、有効な結果です9)。
例
2=>10, 29=>1001, 201, 12110=>1010, 210, 202, 1002, 12223=>2111, 1011137=>100101, 20101, 100021, 20021, 12101, 12021, 11221