Một dải gồm 32 ID liên tiếp a,a+1,a+2,…,a+31. Phòng kỹ thuật cần biết tổng số bit 1 xuất hiện trong biểu diễn nhị phân của tất cả các ID này (cộng dồn popcount từng số).
Có thể tận dụng hàm dựng sẵn của GCC __builtin_popcount(x) để đếm bit 1 trong một số unsigned int cực nhanh.
Ví dụ: với a=0, tổng popcount từ 0 đến 31 là 80.
Một số nguyên không dấu a (0≤a≤4,294,967,263).
Dùng unsigned int để thực hiện phép cộng theo modulo 232. Mỗi popcount nhỏ hơn 33 nên tổng nằm gọn trong int.
Một số nguyên — tổng popcount(a) + popcount(a+1) + ... + popcount(a+31).
Ví dụ:
Đầu vào:
0
Đầu ra:
80
Giải thích:
Đang tải editor...