Фон
Більшість із вас знає, що таке число Фібоначчі . Деякі з вас можуть знати, що всі додатні цілі числа можуть бути представлені у вигляді суми одного або декількох чітких чисел Фібоначчі, згідно з теоремою Зеккендорфа . Якщо кількість доданків в оптимальному представленні цілого числа Зекендорфа n
є самим числом Фібоначчі, ми будемо називати n
"таємно" Фібоначчі.
Наприклад:
139 = 89 + 34 + 13 + 3
This is a total of 4 integers. Since 4 is not a Fibonacci number, 139 is not secretly Fibonacci
140 = 89 + 34 + 13 + 3 + 1
This is a total of 5 integers. Since 5 is a Fibonacci number, 140 is secretly Fibonacci
Примітки
- Оптимальне представлення Зекендорфа можна знайти за допомогою жадібного алгоритму. Просто візьміть найбільше число Фібоначчі <= n і відніміть його від n, поки не досягнете 0
- Всі числа Фібоначчі можна представити у вигляді суми 1 числа Фібоначчі (себе). Оскільки 1 - число Фібоначчі, усі числа Фібоначчі також є таємно Фібоначчі.
Виклик
Ваше завдання полягає в тому, щоб написати програму або функцію, яка приймає ціле число і повертає, чи це ціле число є таємно Фібоначчі.
Вхідні дані
Ви можете взяти інформацію в будь-якому розумному форматі. Ви можете припустити, що вхід буде єдиним натуральним числом.
Вихідні дані
Виведіть один з двох різних результатів для того, чи є вхід таємно Фібоначчі. Приклади включають True
/ False
, 1
/ 0
тощо.
Оцінка балів
Це код-гольф , тому найкоротша відповідь у байтах виграє! Стандартні лазівки заборонені.
Випробування
Truthy (secretly Fibonacci)
1
2
4
50
140
300099
Falsey (NOT secretly Fibonacci)
33
53
54
139
118808