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

ตรวจสอบว่า Number เป็น Palindrome หรือไม่ใน C++

ในบทความนี้เราจะมาดูวิธีตรวจสอบว่า Number เป็น Palindrome หรือไม่ Palindrome Number คือตัวเลขที่อ่านจากซ้ายไปขวาและขวาไปซ้ายได้เหมือนกัน เช่น 12321 เป็น Palindrome แต่ 12345 ไม่ใช่

ตรรกะตรงไปตรงมา: กลับตัวเลข (Reverse) ถ้าตัวเลขที่กลับแล้วเท่ากับตัวเลขเดิม ก็คือ Palindrome

อัลกอริทึม

isPalindrome(n)

Input - Number n

Output - true ถ้าเป็น Palindrome มิฉะนั้น false

begin
    temp := n
    rev := 0
    while n > 0, do
        rev := rev * 10 + (n mod 10)
        n := n / 10
    done
    if rev = temp, then
        return true
    return false
end

ตัวอย่างโค้ด C++

#include <iostream>
using namespace std;

bool isPalindrome(int number) {
    int temp = number;
    int rev = 0;
    while(number > 0) {
        rev = 10 * rev + number % 10; // take last digit, attach with rev
        number /= 10;
    }
    if(rev == temp)
        return true;
    return false;
}

int main() {
    int n = 12321;
    if(isPalindrome(n)) {
        cout << n << " is palindrome number";
    } else {
        cout << n << " is not a palindrome number";
    }
}

ผลลัพธ์

12321 is palindrome number