Про представлення Зекендорфа / Основи Фібоначчі
Це система чисел, яка використовує числа Фібоначчі як свою основу. Числа складаються з 0 і 1, і кожне 1 означає, що число містить відповідне число Фібоначчі, а 0 означає, що це не так.
Наприклад, перетворимо всі натуральні числа <= 10 в основу Фібоначчі.
1 стане 1, оскільки це сума 1, яка є числом Фібоначчі,
2 стане 10, тому що це сума 2, яка є числом Фібоначчі, і їй не потрібно 1, оскільки ми вже досягли бажаної суми.
3 стане 100, тому що це сума 3, яка є числом Фібоначчі, і їй не потрібно 2 або 1, оскільки ми вже досягли бажаної суми.
- 4 стане 101, оскільки це сума [3,1], обидва - це числа Фібоначчі.
- 5 стане 1000, бо це сума 5, яка є числом Фібоначчі, і нам не потрібно жодне з інших чисел.
- 6 стане 1001, оскільки це сума чисел 5 і 1 Фібоначчі.
- 7 стане 1010, тому що це сума чисел 5 і 2 Фібоначчі.
- 8 стане 10000, оскільки це число Фібоначчі.
- 9 стане 10001, оскільки це сума чисел 8 і 1 Фібоначчі.
- 10 стане 10010, оскільки це сума чисел 8 і 2 Фібоначчі.
Перетворимо випадкове базове число Фібоначчі, 10101001010 в десятковий: Спочатку запишемо відповідні числа Фібоначчі. Потім обчислюємо суму чисел під 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.
Детальніше про базові числа Фібоначчі: посилання , він також має інструмент, який перетворює звичайні цілі числа в основу Фібоначчі. Ви можете експериментувати з цим.
Тепер питання:
Ваше завдання - взяти число в представництві Зекендорфа і вивести його десяткове значення.
Введення - це рядок, що містить лише 0 і 1 (хоча ви можете взяти вхід будь-яким способом).
Виведіть одне число десятковою.
Тестові приклади: (у форматі введення-> вихід)
1001 -> 6
100101000 -> 73
1000000000 -> 89
1001000000100100010 -> 8432
1010000010001000100001010000 -> 723452
Це код-гольф, тому найкоротша відповідь у байтах виграє.
Примітка. Вхід не буде містити жодних провідних або послідовних 0.