Défi
Dans cette tâche, vous recevrez un entier N (inférieur à 10 6 ), trouvez la façon minimale de additionner N en utilisant uniquement des nombres de Fibonacci - cette partition est appelée représentation de Zeckendorf .
Vous pouvez utiliser n'importe quel numéro de Fibonacci plus d'une fois et s'il y a plus d'une représentation en sortie.
Par exemple, si l'entrée est 67, une sortie possible pourrait être d'utiliser les nombres Fibonacci 1,3,8,55 qui est également le nombre minimum de nombres Fibonacci qui pourraient être utilisés pour obtenir la somme 67 .
L'entrée N est donnée sur une seule ligne, les entrées sont terminées par EOF.
Exemples
Donné dans le format 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
Contraintes
- Le nombre d'entrées ne dépasserait pas 10 6 valeurs.
- Votre programme ne doit pas fonctionner plus de 5 secondes pour toutes les entrées.
- Vous pouvez utiliser n'importe quelle langue de votre choix.
- La solution la plus courte gagne!