Số học
Mô tả
Trong hệ thống mật khẩu số của ứng dụng VNeID, mỗi gói tin xác thực ủy quyền được mã hóa thành một số nguyên không âm lớn. Bộ lọc bảo mật chia các bit của số này thành hai nhóm:
- Nhóm chẵn: các bit tại vị trí
0, 2, 4, 6, ...(đếm từ phải sang trái, bắt đầu tại vị trí 0). - Nhóm lẻ: các bit tại vị trí
1, 3, 5, 7, ...
Gói tin được xem là tín hiệu mạnh khi tổng số bit 1 ở nhóm chẵn bằng tổng số bit 1 ở nhóm lẻ. Nhiệm vụ của bạn là cho trước số nguyên mã hóa gói tin, hãy xác định số bit 1 ở nhóm chẵn, số bit 1 ở nhóm lẻ, và trả về kết quả kiểm tra.
Cụ thể, bạn cần trả về một mảng ba phần tử [chan, le, ketQua], trong đó:
chan: số bit 1 tại các vị trí chẵn.le: số bit 1 tại các vị trí lẻ.ketQua:1nếuchan == le(tín hiệu mạnh), ngược lại0.
Đầu vào
- Một số nguyên không âm
n(kiểuint), biểu diễn giá trị mã hóa của gói tin.
Đầu ra
- Trả về một mảng ba số nguyên:
[chan, le, ketQua]theo đúng thứ tự mô tả trên.
Ràng buộc
0 ≤ n ≤ 10^9.
Ví dụ
Ví dụ 1:
- Đầu vào:
n = 10 - Giải thích:
10ở hệ nhị phân là1010.- Vị trí 0 (bit ngoài cùng bên phải) =
0→ nhóm chẵn, không bật. - Vị trí 1 =
1→ nhóm lẻ, bật. - Vị trí 2 =
0→ nhóm chẵn, không bật. - Vị trí 3 =
1→ nhóm lẻ, bật. - Tổng bit 1 nhóm chẵn =
0, nhóm lẻ =2. 0 ≠ 2nên kết quả =0.
- Vị trí 0 (bit ngoài cùng bên phải) =