Dãy bit con

Xem PDF

Nộp bài


Điểm: 15 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 512M

Tác giả:
Dạng bài

Cho một số nguyên không âm \(N\), hãy liệt kê (theo thứ tự tăng dần) tất cả các số nguyên không âm \(X\) sao cho tập hợp các vị trí bit \(1\) của \(X\) là một tập con của tập hợp các vị trí bit \(1\) của \(N\).

Input
  • Một dòng duy nhất chứa số nguyên không âm \(N\) \(\left(0\le N < 2^{60}\right)\). Dữ liệu đảm bảo trong biểu diễn nhị phân của \(N\) chứa không quá \(15\) bit \(1\).
Output
  • In ra các giá trị \(X\) tìm được theo thứ tự tăng dần.
Ví dụ
Sample input 01
13
Sample output 01
0
1
4
5
8
9
12
13
Giải thích

Dạng biểu diễn nhị phân của \(N=13_{(10)}\) là \(1101_{(2)}\). Các số nguyên không âm \(X\) thỏa điều kiện đề bài là:

  • \(0000_{(2)} = 0_{(10)}\)
  • \(0001_{(2)} = 1_{(10)}\)
  • \(0100_{(2)} = 4_{(10)}\)
  • \(0101_{(2)} = 5_{(10)}\)
  • \(1000_{(2)} = 8_{(10)}\)
  • \(1001_{(2)} = 9_{(10)}\)
  • \(1100_{(2)} = 12_{(10)}\)
  • \(1101_{(2)} = 13_{(10)}\)
Sample input 02
34896625664
Sample output 02
0
16384
536870912
536887296
34359738368
34359754752
34896609280
34896625664