Kiểm tra một số có phải là palindrome (đối xứng) hay không. Số palindrome đọc từ trái sang phải và phải sang trái giống nhau. Ví dụ 12321 là palindrome, 12345 không.
Logic: đảo ngược số, so sánh với số gốc. Nếu bằng nhau thì là palindrome.
Thuật toán
isPalindrome(n)
begin
temp := n
rev := 0
while n > 0 do
rev := rev * 10 + (n mod 10)
n := n / 10
done
nếu rev = temp thì trả về true
trả về false
end
Ví dụ
#include <iostream>
using namespace std;
bool isPalindrome(int number) {
int temp = number;
int rev = 0;
while(number > 0){
rev = 10 * rev + number % 10;
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";
}
}
Kết quả
12321 is palindrome number