Desafio
Nesta tarefa, você receberia um número inteiro N (menor que 10 6 ), encontre a maneira mínima pela qual você poderia somar N usando apenas números de Fibonacci - essa partição é chamada representação Zeckendorf .
Você pode usar qualquer número de Fibonacci mais de uma vez e, se houver mais de uma representação, qualquer saída.
Por exemplo, se a entrada for 67 , uma saída possível poderia ser usar os números de Fibonacci 1,3,8,55, que também é o número mínimo de números de Fibonacci que poderiam ser usados para obter a soma 67 .
A entrada N é fornecida em uma única linha, as entradas são terminadas por EOF.
Exemplos
Dado no formato input: output
0: 0
47: 34+13
3788: 2584+987+144+55+13+5
1646: 1597+34+13+2
25347: 17711+6765+610+233+21+5+2
677: 610+55+8+3+1
343: 233+89+21
3434: 2584+610+233+5+2
Restrições
- O número de entradas não excederia 10 6 valores.
- Seu programa não deve executar mais de 5 segundos para todas as entradas.
- Você pode usar qualquer idioma de sua escolha.
- A solução mais curta vence!