Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบเลข Palindrome โดยไม่ใช้สตริงใน Python

การตรวจสอบเลข Palindrome โดยไม่แปลงเป็นสตริง

เลข Palindrome คือเลขที่อ่านจากซ้ายไปขวาและขวาไปซ้ายได้เหมือนกัน (เช่น 121, 25352) โปรแกรมนี้ตรวจสอบโดยใช้คณิตศาสตร์โดยไม่แปลงเป็นสตริง

อัลกอริทึม

  1. เก็บค่าเดิมไว้ในตัวแปร c
  2. สร้างตัวแปร a = 0 สำหรับเก็บเลขที่กลับด้าน
  3. วนลูปดึงหลักสุดท้ายของ num โดย num % 10
  4. สร้างเลขกลับด้าน: a = a * 10 + หลักสุดท้าย
  5. ตัดหลักสุดท้ายของ num โดย num //= 10
  6. เมื่อ 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