Palindrome Number = เลขที่อ่านจากหน้าหลังหรือหลังหน้าได้เหมือนกัน (สymmetric) ตัวอย่าง: 12321, 1551, 11
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
void palindrome(int num) {
int rev = 0, val;
val = num;
while(num > 0) {
rev = rev * 10 + num % 10;
num = num / 10;
}
if(val == rev)
cout << val << " is a palindrome" << endl;
else
cout << val << " is not a palindrome" << endl;
}
int main() {
palindrome(12321);
palindrome(1234);
return 0;
}
ผลลัพธ์
12321 is a palindrome 1234 is not a palindrome
อธิบายการทำงาน
palindrome() สร้างเลขกลับ (rev):
int rev = 0, val;
val = num;
while(num > 0) {
rev = rev * 10 + num % 10;
num = num / 10;
}
- val เก็บค่าเดิม (เพราะ num จะกลายเป็น 0)
- while loop: rev = rev×10 + หลักสุดท้ายของ num, num /= 10
- เช็ค val == rev → เป็น palindrome
if(val == rev)
cout << val << " is a palindrome";
else
cout << val << " is not a palindrome";