Ở đây chúng ta sẽ thấy, làm thế nào để kiểm tra một số có phải là palindrome hay không. Các số palindrome giống nhau theo cả hai hướng. Ví dụ:số 12321 là palindrome, nhưng 12345 không phải là palindrome.
Logic là rất thẳng về phía trước. Chúng ta phải đảo ngược số, và nếu số bị đảo ngược giống với số thực thì đó là palindrome, ngược lại thì không. Hãy để chúng tôi xem thuật toán để hiểu rõ hơn.
Thuật toán
isPalindrome (n) -
đầu vào - Số n
đầu ra - true, nếu số là palindrome, ngược lại, 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
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; //take the last digit, and attach with the 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"; } }
Đầu ra
12321 is palindrome number