Write a recursive function in C programming to check whether a given number is palindrome or not. How to check whether a number is palindrome or not using recursion in C programming. Function to check palindrome number in C programming. Logic to check palindrome number using recursion in C programming.

**Example**

**Input**

Input number: 121

**Output**

121 is palindrome

## Required knowledge

Basic C programming, Function, Recursion

Must know - Program to check palindrome number using loop

## Declare recursive function to check palindrome

Before we check palindrome numbers using functions, let us first define our function.

- First give a meaningful name to the function, say isPalindrome(). Along with this declare and define another function to find int reverse(int num);.

Read more - Program to find reverse of a number using recursion

- Next, the isPalindrome() function takes an integer as input. Therefore, pass an integer value as parameter to the function i.e. isPalindrome(int num);.
- Finally the function returns boolean true or false value based on the palindrome condition. In C we represent boolean values either 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);.

## Logic to check palindrome numbers using recursion

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. In my previous post I explained how to find reverse of any number recursively. Here we will use the same recursive approach to find reverse and then will compare the result with the original number to check palindrome condition.

## Program to check palindrome number using recursion

```
/**
* C program to check palindrome number using recursion
*/
#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)
{
//Finds total number of digits
int digit = (int)log10(num);;
// Base condition
if(num == 0)
return 0;
return ((num%10 * pow(10, digit)) + reverse(num/10));
}
```

Output

Enter any number: 1221 1221 is palindrome number.

Happy coding 😉

### Recommended posts

- Function and recursion programming exercise index.
- C program to find sum of digits of a number using recursion.
- C program to find factorial of a number using recursion.
- C program to generate nth Fibonacci sequence using recursion.
- C program to calculate HCF using recursion.
- C program to calculate LCM using recursion.

<pre><code> ----Your Source Code---- </code></pre>