Bài toán: Cho số n và giới hạn c (số LED tối đa cho phép sáng). Mỗi chữ số 0-9 dùng số LED cố định. Kiểm tra xem n có hiển thị được không.
Số LED mỗi chữ số
seg = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6] tương ứng 0-9.
Ví dụ: 1 dùng 2 LED, 8 dùng 7 LED, 0/6/9 dùng 6 LED.
Triển khai Python
seg = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6]
def solve(n, c):
s = str(n)
led_count = 0
for ch in s:
led_count += seg[ord(ch) - 48] # ord('0')=48
return led_count <= c
# Test
print(solve(315, 17)) # True: 3(5)+1(2)+5(5)=12 ≤ 17
print(solve(888, 20)) # False: 3*7=21 > 20
Kết quả
True
Giải thích
- Chuyển số thành string, duyệt từng ký tự.
ord(ch) - 48chuyển ký số '0'-'9' thành index 0-9.- Tổng LED so với ngưỡng
c. - Độ phức tạp: O(số chữ số).