Biểu diễn Canonical Signed Digit (CSD, hay Non-Adjacent Form – NAF) viết một số nguyên dương dưới dạng tổng các lũy thừa của 2 với hệ số thuộc {−1, 0, +1}, sao cho không có hai chữ số khác 0 nào liền kề. Đây là dạng có ít chữ số khác 0 nhất, hữu ích để tối ưu phép nhân.
Cho số nguyên dương N, hãy in chuỗi CSD từ chữ số có trọng số cao nhất tới thấp nhất, dùng ký tự + cho +1, - cho −1, 0 cho 0 (không có số 0 thừa ở đầu), và số lượng chữ số khác 0, cách nhau bởi một dấu cách.
N = 7 = 8 − 1 → CSD +00- (tức +2^3 −2^0), có 2 chữ số khác 0.
Một dòng chứa số nguyên dương N.
1 ≤ N ≤ 10^18.
Một dòng: chuỗi CSD, dấu cách, số chữ số khác 0.
Ví dụ:
Đầu vào:
7
Đầu ra:
+00- 2
Giải thích:
Đang tải editor...