สมมติมีตัวเลข n ต้องตรวจสอบว่าผลคูณของเลขหลักตำแหน่งคี่ และตำแหน่งคู่ เท่ากันหรือไม่
เช่น Input n = 2364 Output True เพราะ ตำแหน่งคี่ (2*6=12) ตำแหน่งคู่ (3*4=12) เท่ากัน
ขั้นตอนแก้:
- ถ้า num < 10 Return False
- odd_place = 1, even_place = 1
- While num > 0: ดึงหลักสุดท้าย คูณ odd_place, num //= 10; ถ้า num == 0 break; ดึงหลักสุดท้าย คูณ even_place, num //= 10
- ถ้า odd_place == even_place Return True
- Return False
ตัวอย่างโค้ด
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))
Input
2364
Output
True