Giả sử chúng ta có một số dấu phẩy động; chúng ta phải kiểm tra xem số đó là số lẻ hay số chẵn. Nói chung, đối với số nguyên, nó dễ dàng bằng cách chia chữ số cuối cùng cho 2. Nhưng đối với số dấu phẩy động, nó không thẳng tiến như vậy. Chúng ta không thể chia chữ số cuối cùng cho 2 để kiểm tra xem nó là lẻ hay chẵn.
Vì vậy, nếu đầu vào là n =200.290, thì đầu ra sẽ là Lẻ mặc dù chữ số cuối cùng chia hết cho 2.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- s:=chuyển đổi số thành chuỗi
- cờ:=Sai
- đối với tôi trong phạm vi kích thước từ s - 1 đến 0, giảm đi 1, thực hiện
- nếu s [i] là '0' và cờ là Sai, thì
- chuyển sang lần lặp tiếp theo
- nếu s [i] giống với '.', thì
- cờ:=True
- chuyển sang lần lặp tiếp theo
- nếu s [i] chẵn thì
- trả về "Even"
- trả về "Kỳ lạ"
- nếu s [i] là '0' và cờ là Sai, thì
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
def solve(n) : s = str(n) flag = False for i in range(len(s) - 1, -1, -1) : if s[i] == '0' and flag == False : 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