25
数値をZeckendorf RepresentationからDecimalに変換する
Zeckendorf Representations / Base Fibonacci Numbersについて これは、フィボナッチ数をベースとして使用する数値システムです。数値は0と1で構成され、各1は数値に対応するフィボナッチ数が含まれることを意味し、0は含まれないことを意味します。 たとえば、10以下のすべての自然数をベースフィボナッチに変換しましょう。 1はフィボナッチ数である1の合計であるため、1になります。 2はフィボナッチ数である2の合計であるため10になります。1は必要ありません。これは既に目的の合計を達成しているためです。 3はフィボナッチ数である3の合計であるため、100になります。目的の合計をすでに達成しているため、2または1は必要ありません。 4は101になります。これは、フィボナッチ数である[3,1]の合計であるためです。 5はフィボナッチ数である5の合計であるため、1000になります。他の数は必要ありません。 6はフィボナッチ数5と1の合計であるため、1001になります。 7はフィボナッチ数5と2の合計であるため、1010になります。 8はフィボナッチ数であるため、10000になります。 9は、フィボナッチ数8と1の合計であるため、10001になります。 10はフィボナッチ数8と2の合計であるため、10010になります。 ランダムなベースフィボナッチ数10101001010を10進数に変換しましょう:最初に、対応するフィボナッチ数を書きます。次に、1の下の数値の合計を計算します。 1 0 1 0 1 0 0 1 0 1 0 144 89 55 34 21 13 8 5 3 2 1 -> 144+55+21+5+2 = 227. ベースフィボナッチ数の詳細:linkには、通常の整数をベースフィボナッチに変換するツールもあります。あなたはそれを試すことができます。 今質問: あなたの仕事は、Zeckendorf表現で数値を取得し、その10進数値を出力することです。 入力は、0と1のみを含む文字列です(ただし、入力は任意の方法で取得できます)。 1つの数値を10進数で出力します。 …