สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าผลคูณของเลขคี่และเลขคู่นั้นเหมือนกันหรือไม่
ดังนั้น หากอินพุตเป็น n =2364 ผลลัพธ์จะเป็น True เนื่องจากผลคูณของเลขคี่คือ 2 * 6 =12 และผลิตภัณฑ์ของตัวเลขที่ออกคู่คือ 3 * 4 =12 ซึ่งเหมือนกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้า num <10 แล้ว
- คืนค่าเท็จ
- odd_place :=1, even_place :=1
- ในขณะที่ num> 0, ทำ
- d :=หลักสุดท้ายของ num
- odd_place :=odd_place * d
- num :=ผลหารของ (num/10)
- ถ้า num เท่ากับ 0 แล้ว
- แตก
- d :=หลักสุดท้ายของ num
- even_place :=even_place * d
- num :=ผลหารของ (num/10)
- ถ้า odd_place เหมือนกับ even_place แล้ว
- คืนค่า True
- คืนค่าเท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(num): if num < 10: return False odd_place = 1 even_place = 1 while num > 0: d = num % 10 odd_place *= d num = num//10 if num == 0: break d = num % 10 even_place *= d num = num//10 if odd_place == even_place: return True return False num = 2364 print(solve(num))
อินพุต
2364
ผลลัพธ์
True