Vòng lặp
Mô tả
Hệ thống xe buýt điện VinBus trang bị cảm biến sức khỏe gắn trên mỗi xe. Khi một bộ phận gặp sự cố, cảm biến sẽ phát ra một mã lỗi dạng số nguyên không âm, mà biểu diễn nhị phân (8 bit) cho biết cụ thể linh kiện nào đang hỏng.
Cụ thể hơn, mã lỗi gồm 8 bit đánh số thứ tự từ bit 0 (bit nhỏ nhất, tận cùng bên phải) đến bit 7 (bit lớn nhất, tận cùng bên trái). Kỹ sư bảo trì chia 8 vị trí này thành hai nhóm:
- Vị trí chẵn: bit 0, bit 2, bit 4, bit 6 — tương ứng linh kiện điện (ắc quy, động cơ, biến tần, cáp nguồn).
- Vị trí lẻ: bit 1, bit 3, bit 5, bit 7 — tương ứng linh kiện cơ khí (phanh, lốp, treo, khung).
Nhiệm vụ của bạn: Cho trước mã lỗi, hãy đếm số bit đang bật (bằng 1) tại các vị trí chẵn và số bit đang bật tại các vị trí lẻ. Trả về tổng số bit lỗi của mỗi nhóm để đội bảo trì nhanh chóng phân loại sự cố.
Đầu vào
- Một số nguyên không âm
error_code(0 ≤ error_code ≤ 255), là mã lỗi cảm biến.
Đầu ra
- Trả về một danh sách hai phần tử
[chan, le], trong đóchanlà số bit bật ở vị trí chẵn vàlelà số bit bật ở vị trí lẻ.
Ràng buộc
- 0 ≤ error_code ≤ 255.
Ví dụ
Ví dụ 1:
- Đầu vào:
170 - Giải thích: 170 trong nhị phân là
10101010. Các vị trí chẵn (bit 0, 2, 4, 6) đều bằng 0, các vị trí lẻ (bit 1, 3, 5, 7) đều bằng 1. Vậy số bit chẵn bật là 0, số bit lẻ bật là 4. - Đầu ra:
[0, 4]
Ví dụ 2:
- Đầu vào:
85 - Giải thích: 85 trong nhị phân là
01010101. Các vị trí chẵn (bit 0, 2, 4, 6) đều bằng 1, các vị trí lẻ (bit 1, 3, 5, 7) đều bằng 0. Vậy số bit chẵn bật là 4, số bit lẻ bật là 0. - Đầu ra:
[4, 0]