C Program to Check Palindrome Number
Checking whether a number is a palindrome is a common problem in C programming. It helps beginners understand loops, conditional statements, and number manipulation.
A palindrome number is a number that remains the same when its digits are reversed.
1. Understanding the Problem
We need to check whether a given number is equal to its reverse.
Number: 121 → Palindrome Number: 123 → Not Palindrome Number: 444 → Palindrome
2. Algorithm Using Loop
1. Read the number from the user.
2. Store the original number in a variable.
3. Initialize reverse = 0.
4. While number is not 0:
- Extract digit: digit = num % 10
- Update reverse: reverse = reverse * 10 + digit
- Remove last digit: num /= 10
5. Compare reverse with original number.
6. If equal → palindrome, else not.
3. C Program Using While Loop
#include <stdio.h>
int main() {
int num, original, reverse = 0, digit;
printf("Enter a number: ");
scanf("%d", &num);
original = num;
while(num != 0) {
digit = num % 10;
reverse = reverse * 10 + digit;
num /= 10;
}
if(original == reverse)
printf("Palindrome number\n");
else
printf("Not a palindrome\n");
return 0;
}
Enter a number: 121 Palindrome number
4. C Program Using For Loop
#include <stdio.h>
int main() {
int num, original, reverse = 0, digit;
printf("Enter a number: ");
scanf("%d", &num);
original = num;
for(; num != 0; num /= 10) {
digit = num % 10;
reverse = reverse * 10 + digit;
}
if(original == reverse)
printf("Palindrome number\n");
else
printf("Not a palindrome\n");
return 0;
}
5. Using Recursion
#include <stdio.h>
int reverseNum(int num, int rev) {
if(num == 0)
return rev;
return reverseNum(num / 10, rev * 10 + num % 10);
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
int reversed = reverseNum(num, 0);
if(num == reversed)
printf("Palindrome number\n");
else
printf("Not a palindrome\n");
return 0;
}
6. Using String Method
We can also convert the number to a string and compare characters from both ends.
#include <stdio.h>
#include <string.h>
int main() {
char num[20];
int i, len, flag = 1;
printf("Enter a number: ");
scanf("%s", num);
len = strlen(num);
for(i = 0; i < len / 2; i++) {
if(num[i] != num[len - i - 1]) {
flag = 0;
break;
}
}
if(flag)
printf("Palindrome number\n");
else
printf("Not a palindrome\n");
return 0;
}
7. Common Mistakes
1. Not storing the original number before reversing.
2. Incorrect reverse logic (missing multiplication by 10).
3. Ignoring negative numbers.
4. Using incorrect loop conditions.
8. Applications
1. Used in number pattern problems.
2. Useful in algorithm design and logic building.
3. Helps in competitive programming challenges.
Conclusion
Checking palindrome numbers in C is a great way to practice loops, recursion, and logic building. Multiple approaches allow flexibility depending on the problem context.
Mastering such problems strengthens your problem-solving skills and prepares you for coding interviews.
Codecrown