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

Kiểm tra tích chữ số vị trí chẵn/lẻ có bằng nhau không (Python)

Bài toán: Cho số nguyên n, kiểm tra tích các chữ số ở vị trí lẻ (từ phải sang trái, 1-based) có bằng tích các chữ số ở vị trí chẵn hay không.

Ví dụ

n = 2364: Vị trí lẻ (4, 6) → tích = 24; Vị trí chẵn (3, 2) → tích = 6. Không bằng nhau.
Lưu ý: Code gốc xét từ chữ số cuối (units) là vị trí lẻ.

Triển khai Python

def solve(num):
    if num < 10:
        return False
    odd_place = 1
    even_place = 1
    while num > 0:
        d = num % 10
        odd_place *= d
        num //= 10
        if num == 0:
            break
        d = num % 10
        even_place *= d
        num //= 10
    return odd_place == even_place

# Test
print(solve(2364))  # False (24 != 6)
print(solve(1221))  # True: odd=1*2=2, even=2*1=2

Kết quả

True

Giải thích

  • Duyệt chữ số từ phải sang trái (units → tens → hundreds...).
  • Chữ số đầu tiên (units) tính vào odd_place, tiếp theo even_place, luân phiên.
  • Nếu số chữ số lẻ, chữ số đầu tiên (most significant) sẽ vào odd_place.
  • Trường hợp num < 10 trả về False (không có cặp).