Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra số có hiển thị được trên màn hình 7 đoạn LED không (Python)

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) - 48 chuyể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ố).