การตรวจสอบตัวเลข Palindrome ด้วย PL/SQL
ตัวเลข Palindrome คือตัวเลขที่อ่านจากหน้าหลังหรือหลังหน้าได้เหมือนกัน (เช่น 12321) ใน PL/SQL เราสามารถกลับตัวเลขแล้วเปรียบเทียบกับต้นฉบับ
ตัวอย่างโค้ด PL/SQL
DECLARE
n NUMBER;
m NUMBER;
temp NUMBER := 0;
rem NUMBER;
BEGIN
n := 12321;
m := n;
WHILE n > 0 LOOP
rem := MOD(n, 10);
temp := (temp * 10) + rem;
n := TRUNC(n / 10);
END LOOP;
IF m = temp THEN
DBMS_OUTPUT.PUT_LINE('Palindrome');
ELSE
DBMS_OUTPUT.PUT_LINE('Not Palindrome');
END IF;
END;
ผลลัพธ์
Palindrome
คำอธิบาย
MOD(n, 10): หาตัวเลขหลักสุดท้าย (เศษจากการหาร 10)temp := temp * 10 + rem: สร้างตัวเลขกลับทีละหลักTRUNC(n / 10): ตัดหลักสุดท้ายออก (หาร 10 แล้วปัดทิ้งเศษ)- วนลูปจนกว่า n จะเหลือ 0
- เปรียบเทียบตัวเลขต้นฉบับ (m) กับตัวเลขที่กลับแล้ว (temp)
- โค้ดนี้รันใน Oracle PL/SQL ไม่ใช่ MySQL