A palindrome number reads the same forwards and backwards. Classic examples: 121, 3443, and every one-digit value.
Remember
n is palindrome ⇔ reverse(digits of n) == n
Examples:
121 → reverse 121 → yes
123 → reverse 321 → no
7 → reverse 7 → yes
10 → reverse 01=1 → no
n
Reverse
Palindrome?
121
121
Yes
1221
1221
Yes
123
321
No
Approach
How to Check a Palindrome Number in C++
Four clear steps — then pick a math reverse or a string compare.
Reject negatives for this beginner rule (optional: work with abs if your problem allows it).
Copy n into a temporary variable.
Build the reverse: repeatedly take digit = temp % 10, then rev = rev * 10 + digit, then temp /= 10.
Compare rev with the original n.
Method
Idea
Time
Best for
Digit reverse
Build rev with % 10 / / 10
O(d)
Interviews (no string help)
String compare
Compare text with its reverse
O(d)
Quick, readable code
Pseudocode
Pseudocode
function IsPalindrome(n):
if n < 0:
return false
original = n
rev = 0
while n > 0:
digit = n mod 10
rev = rev * 10 + digit
n = n / 10
return rev == original
Reference
Cheat Sheet
Keep these facts handy while writing the program.
Topic
Detail
Core idea
Reverse digits, then compare
Digit peel
n % 10 then n /= 10
Build reverse
rev = rev * 10 + digit
One digit
Always palindrome
Negatives
Usually not (this page: false)
Classic checks
121 yes; 123 no; 10 no
Try it
Live Preview
Enter an integer to see the reversed digits and the palindrome check.
Whole numbers only. Negatives count as not palindrome here. Tap a chip or type a value.
Result
n = 121
Reverse = 121
121 is a palindrome
Trace
Worked Walkthrough — n = 121
Peel digits from the right and push them onto the reverse value.
Calculation
original = 121
rev = 0
Step 1: digit = 1, rev = 0*10 + 1 = 1, n = 12
Step 2: digit = 2, rev = 1*10 + 2 = 12, n = 1
Step 3: digit = 1, rev = 12*10 + 1 = 121, n = 0
rev == original → 121 is a palindrome
Code
C++ Programs
Start with the math reverse — interviewers usually want that. Use the string version when readability matters more than avoiding text helpers.
Example 1 — Digit Reverse
Build the reverse integer with remainder and integer division, then compare.
C++
#include <iostream>
using namespace std;
bool isPalindrome(int n)
{
if (n < 0)
{
return false;
}
int original = n;
int rev = 0;
while (n > 0)
{
int digit = n % 10;
rev = rev * 10 + digit;
n /= 10;
}
return rev == original;
}
int main()
{
int number = 121;
cout << number
<< (isPalindrome(number) ? " is a palindrome" : " is not a palindrome")
<< endl;
return 0;
}
Output
121 is a palindrome
How It Works
Negatives return false immediately under this page’s rule.
Save original because the loop will destroy the working copy of n.
Each step peels the last digit with n % 10 and appends it to rev.
n /= 10 drops that digit so the loop moves leftward.
When the loop ends, rev == original means the digits matched both ways.
Example 2 — String Compare
Convert to text and check that it equals its reverse.