Thử thách
Trong tác vụ này, bạn sẽ được cấp một số nguyên N (nhỏ hơn 10 6 ), tìm cách tối thiểu mà bạn có thể tính tổng bằng N chỉ bằng các số Fibonacci - phân vùng này được gọi là biểu diễn Zeckendorf .
Bạn có thể sử dụng bất kỳ số Fibonacci nào nhiều lần và nếu có nhiều hơn một đầu ra đại diện bất kỳ.
Ví dụ: nếu đầu vào là 67 thì một đầu ra có thể có thể sử dụng các số Fibonacci 1,3,8,55 , đây cũng là số lượng tối thiểu của các số Fibonacci có thể được sử dụng để lấy tổng 67 .
Đầu vào N được đưa ra trên một dòng duy nhất, đầu vào được kết thúc bằng EOF.
Ví dụ
Đưa ra trong định dạng 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
Những ràng buộc
- Số lượng đầu vào sẽ không vượt quá 10 6 giá trị.
- Chương trình của bạn không nên chạy quá 5 giây cho tất cả các đầu vào.
- Bạn có thể sử dụng bất kỳ ngôn ngữ nào bạn chọn.
- Giải pháp ngắn nhất sẽ thắng!