Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Bash program to check if the Number is a Palindrome?
In C programming, to check whether a number is a palindrome, we need to reverse the number and compare it with the original. A palindrome number reads the same forwards and backwards, like 12321 or 1221.
Syntax
int reverseNumber(int num); int isPalindrome(int num);
Method 1: Using Mathematical Approach
This method extracts digits from the end and builds the reversed number mathematically −
#include <stdio.h>
int reverseNumber(int num) {
int reversed = 0;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return reversed;
}
int isPalindrome(int num) {
return num == reverseNumber(num);
}
int main() {
int number = 12321;
printf("Original number: %d
", number);
printf("Reversed number: %d
", reverseNumber(number));
if (isPalindrome(number)) {
printf("Number is palindrome
");
} else {
printf("Number is not palindrome
");
}
return 0;
}
Original number: 12321 Reversed number: 12321 Number is palindrome
Method 2: Using String Comparison
This approach converts the number to a string and compares it with its reverse −
#include <stdio.h>
#include <string.h>
void reverseString(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
int main() {
int number = 1221;
char original[20], reversed[20];
sprintf(original, "%d", number);
strcpy(reversed, original);
reverseString(reversed);
printf("Original: %s
", original);
printf("Reversed: %s
", reversed);
if (strcmp(original, reversed) == 0) {
printf("Number is palindrome
");
} else {
printf("Number is not palindrome
");
}
return 0;
}
Original: 1221 Reversed: 1221 Number is palindrome
Key Points
- The mathematical method is more efficient with O(log n) time complexity.
- String method is easier to understand but uses extra memory.
- Both methods handle positive integers correctly.
Conclusion
Checking palindrome numbers in C can be done using mathematical digit extraction or string manipulation. The mathematical approach is more memory-efficient for numeric palindrome detection.
Advertisements
