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

Kiểm tra số thực là chẵn hay lẻ trong Python

Với số nguyên, kiểm tra chẵn/lẻ rất đơn giản qua chữ số cuối. Nhưng với số thực (floating point), không thể dùng cách đó vì phần thập phân. Ví dụ: 200.290 là số lẻ dù chữ số cuối là 0.

Cách giải quyết: chuyển số thành chuỗi, duyệt từ phải sang trái, bỏ qua các số 0 ở cuối phần thập phân, khi gặp dấu chấm thì bỏ qua, chữ số khác 0 đầu tiên gặp được sẽ quyết định chẵn/lẻ.

Giải thuật

  • Chuyển số thành chuỗi s.
  • Duyệt ngược từ cuối chuỗi:
    • Bỏ qua các '0' nếu chưa gặp dấu chấm.
    • Gặp dấu chấm thì đánh dấu đã qua phần thập phân.
    • Chữ số đầu tiên không phải '0' và không phải dấu chấm: kiểm tra chẵn/lẻ.

Mã ví dụ

def solve(n):
    s = str(n)
    flag = False
    for i in range(len(s) - 1, -1, -1):
        if s[i] == '0' and not flag:
            continue
        if s[i] == '.':
            flag = True
            continue
        if int(s[i]) % 2 == 0:
            return "Even"
        return "Odd"

n = 200.290
print(solve(n))

Đầu vào

200.290

Đầu ra

Odd