Wyzwanie
W tym zadaniu otrzymasz liczbę całkowitą N (mniejszą niż 10 6 ), znajdź minimalny sposób, w jaki możesz sumować do N, używając tylko liczb Fibonacciego - ta partycja nazywa się reprezentacją Zeckendorfa .
Możesz użyć dowolnej liczby Fibonacciego więcej niż jeden raz i jeśli istnieje więcej niż jeden wynik reprezentacji.
Na przykład, jeśli dane wejściowe to 67, wówczas jednym z możliwych wyników może być użycie liczb Fibonacciego 1,3,8,55, co jest również minimalną liczbą liczb Fibonacciego, które można wykorzystać do uzyskania sumy 67 .
Wejście N jest podawane w jednym wierszu, wejścia są zakończone przez EOF.
Przykłady
Podany w formacie 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
Ograniczenia
- Liczba wejść nie przekroczy 10 10 wartości.
- Twój program nie powinien działać dłużej niż 5 sekund dla wszystkich danych wejściowych.
- Możesz użyć dowolnego wybranego języka.
- Najkrótsze rozwiązanie wygrywa!