การตรวจสอบเลข Palindrome โดยไม่แปลงเป็นสตริง
เลข Palindrome คือเลขที่อ่านจากซ้ายไปขวาและขวาไปซ้ายได้เหมือนกัน (เช่น 121, 25352) โปรแกรมนี้ตรวจสอบโดยใช้คณิตศาสตร์โดยไม่แปลงเป็นสตริง
อัลกอริทึม
- เก็บค่าเดิมไว้ในตัวแปร
c - สร้างตัวแปร
a = 0สำหรับเก็บเลขที่กลับด้าน - วนลูปดึงหลักสุดท้ายของ
numโดยnum % 10 - สร้างเลขกลับด้าน:
a = a * 10 + หลักสุดท้าย - ตัดหลักสุดท้ายของ
numโดยnum //= 10 - เมื่อ
numเหลือ 0 เปรียบเทียบaกับc
ตัวอย่างโค้ด
def solve(num):
a = 0
c = num
while num > 0:
r = num % 10
num = num // 10
a = (10 * a) + r
if a == c:
return True
else:
return False
num = 25352
print(solve(num))
ผลลัพธ์
True
การทดสอบเพิ่มเติม
print(solve(121)) # True print(solve(123)) # False print(solve(0)) # True print(solve(10)) # False