C Programming Code Examples C > Functions Code Examples C program to check palindrome number using recursion C program to check palindrome number using recursion Write a recursive function in C to check palindrome number. How to check whether a number is palindrome or not using recursion in C program. Declare recursive function to check palindrome First give a meaningful name to our function, say isPalindrome(). Along with this declare and define another function to find reverse of number, say int reverse(int num);. Next, the isPalindrome() function takes an integer to find reverse as input. Therefore, pass an integer value to the function i.e. isPalindrome(int num);. Finally function must return boolean true or false value based on palindrome condition. In C we represent boolean values with 1 or 0. Hence the function must return an integer. Considering the above points function declaration to check palindrome number is - int isPalindrome(int num);. We know that to check a palindrome number we first need to reverse the number then check whether the given number is equal to its reverse or not. If the given number is equal to its reverse then the number is palindrome otherwise not. Here we will use the same recursive approach to find reverse and then will compare the reversed number with original number. #include <stdio.h> #include <math.h> /* Function declarations */ int reverse(int num); int isPalindrome(int num); int main() { int num; /* Input any number from user */ printf("Enter any number: "); scanf("%d", &num); if(isPalindrome(num) == 1) { printf("%d is palindrome number.\n", num); } else { printf("%d is NOT palindrome number.\n", num); } return 0; } /** * Function to check whether a number is palindrome or not. * This function returns 1 if the number is palindrome otherwise 0. */ int isPalindrome(int num) { /* * Check if the given number is equal to * its reverse. */ if(num == reverse(num)) { return 1; } return 0; } /** * Recursive function to find reverse of any number */ int reverse(int num) { /* Find number of digits in num */ int digit = (int)log10(num); /* Recursion base condition */ if(num == 0) return 0; return ((num%10 * pow(10, digit)) + reverse(num/10)); }