ปัญหา
สำหรับจำนวนเต็ม ตรวจสอบคู่/คี่ง่ายด้วยหลักสุดท้าย แต่ตัวเลขทศนิยมต้องพิจารณาหลักที่ไม่ใช่ศูนย์สุดท้ายหลังจุดทศนิยม
ตัวอย่าง
n = 200.290 → หลักที่ไม่ใช่ศูนย์สุดท้ายคือ 9 (คี่) → ผลลัพธ์ "Odd"
แนวคิดการแก้ปัญหา
- แปลงตัวเลขเป็นสตริง
- อ่านจากขวาไปซ้าย ข้ามศูนย์นำหน้าหลังจุดทศนิยม
- เมื่อเจอจุดทศนิยม ให้ตั้ง flag แล้วข้ามไป
- หลักแรกที่เจอ (ไม่ใช่ศูนย์/จุด) ตรวจสอบคู่/คี่
โค้ดตัวอย่าง
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
# พบหลักที่ไม่ใช่ศูนย์/จุด
return "Even" if int(s[i]) % 2 == 0 else "Odd"
print(solve(200.290)) # Odd
อินพุต / เอาต์พุต
Input: 200.290 Output: Odd