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
originalNumber
is then reversed and is stored in thereversedNumber
variable. - The next step is to compare both the variables i.e.
originalNumber
andreversedNumber
. - 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!! ?