C Program to check whether the given number is a Palindrome or Not
In this C Programming example, we will implement the program to check whether the given number is a Palindrome or not by using the user’s input and print it on screen. We will implement the program using loops and recursive functions.
1. Palindrome number
A Palindrome is a word, string, number or any sequence that reads same forward and backward.
A Palindromic number is a number that reads the same when the digits are read backward (such as 121 or 11211).
Helpful topics to understand this program better are
2. Palindrome program in C using Loop
Let’s discuss the execution(kind of pseudocode) for the program to find whether a string is a Palindrome or not in C.
- In the first step of the program, the number(integer) is entered by the user and is stored in a temporary variable i.e.
x. - This temporary variable is equal to the
originalNumber. - The
originalNumberis then reversed and is stored in thereversedNumbervariable. - The next step is to compare both the variables i.e.
originalNumberandreversedNumber. - If both numbers are the same, print it as a palindrome number. Else print not a palindrome number.
Let us implement this concept in the c program and check whether the given number is Palindrome or not.
#include <stdio.h>
int main() {
int x, reversedNumber = 0, remainder, originalNumber;
printf("Enter an integer: ");
scanf("%d", &x);
originalNumber = x;
// reversed integer is stored in reversedNumber
while (x != 0) {
remainder = x % 10;
reversedNumber = reversedNumber * 10 + remainder;
x /= 10;
}
// condition is checked if the given number is palindrome or not.
if (originalNumber == reversedNumber)
printf("%d is a palindrome.", originalNumber);
else
printf("%d is not a palindrome.", originalNumber);
return 0;
}Output Testing for integer... Enter an integer: 121 121 is a palindrome.
3. Palindrome number program in C using Recursion
In the last section, we have implemented a program using loops, let’s now use the Recursive approach to validate if the given number is a Palindrome or not.
In this, we use recursion to find the reverse of a number and then compare the reversedNumber with the originalNumber to validate if the number is a Palindrome or not.
#include <stdio.h>
#include <math.h>
int reverse(int number);
int isPalindrome(int number);
int main()
{
int number;
//Input is entered by the user
printf("Enter an Integer:");
scanf("%d", &number);
//Condition is verified for a number to be a palindrome or not
if (isPalindrome(number) == 1)
{
printf("%d is a Palindrome number.\n", number);
}
else
{
printf("%d is not Palindrome number.\n", number);
}
return 0;
}
//Recursive function to find reverse of any number
int reverse(int number)
{
//Finding the number of digits in numbers
int digits = (int)log10(number);
if (number == 0)
return 0;
return ((number % 10 * pow(10, digits)) + reverse(number / 10));
}
// Function to verify whether a number is a palindrome or not.
// This function returns 1 if the number is palindrome or else it will return 0.
int isPalindrome(int number)
{
//Check if the given number is equal to its reverse.
if (number == reverse(number))
{
return 1;
}
return 0;
}Output Testing for integer... Enter an Integer:12321 12321 is a Palindrome number.
4. Conclusion
In this C Programming example, we have discussed how to check whether the given number is Palindrome or not via two different approaches, using a loop and using recursive functions, and finally, print the result to the console.
Helpful Links
Please follow C Programming tutorials or the menu in the sidebar for the complete tutorial series.
Also for the example C programs please refer to C Programming Examples.
All examples are hosted on Github.
Recommended Books
An investment in knowledge always pays the best interest. I hope you like the tutorial. Do come back for more because learning paves way for a better understanding
Do not forget to share and Subscribe.
Happy coding!! ?