Get free ebooK with 50 must do coding Question for Product Based Companies solved
Fill the details & get ebook over email
Thank You!
We have sent the Ebook on 50 Must Do Coding Questions for Product Based Companies Solved over your email. All the best!

# Check Palindrome

Last Updated on March 28, 2022 by Ria Pathak

Recursion

Easy

### PROBLEM STATEMENT(SIMPLIFIED):

Given a number N, check whether the number is palindrome or not using recursion. The palindrome number remains the same when its digits are reversed.

See original problem statement here

#### For Example :

``````Input : N = "12321"

Output : YES``````
``````Input : N = "123"

Output : NO

Explanation : 123 is not equal to 321``````

### SOLVING APPROACH:

1. Find `reverse` of a number –
1.1 Initialise `result` with 0.
1.2 Whenever value of N becomes 0, return `result`.
1.3 If N is not 0, update `result` with `result` * 10 + N%10.
1.4 And recursively solve for N/10.

2. Compare `reverse` with N if both are equal, print YES else NO.

### ALGORITHM:

``````result = 0
solve(N) :
if(N becomes 0)
return result
else
res = res * 10 + N %10
solve(N/10)``````

### SOLUTIONS:

```
#include <stdio.h>

//function for finding reverse of a number
int isPalin(int n,int res){
if(n == 0)
return res;

res = res*10 + n%10;
return isPalin(n/10,res);
}

int main()
{
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
int rev = isPalin(n,0);
if(n == rev)
printf("YES\n");
else
printf("NO\n");

}
return 0;
}
```
```
#include <bits/stdc++.h>
using namespace std;

//function for finding reverse of a number
int isPalin(int n,int res){
if(n == 0)
return res;

res = res*10 + n%10;
return isPalin(n/10,res);
}

int main()
{
int t;cin>>t;
while(t--){
int n;cin>>n;
int rev = isPalin(n,0);
if(n == rev)
cout<<"YES\n";
else
cout<<"NO\n";

}
return 0;
}
```
```import java.util.*;
import java.io.*;

public class Main {
//function for finding reverse of a number
static int isPalin(int n,int res){
if(n == 0)
return res;

res = res*10 + n%10;
return isPalin(n/10,res);
}

public static void main(String args[]) throws IOException {

Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t != 0){
int n = sc.nextInt();
int res = 0;
int rev = isPalin(n,res);
if(n == rev)
System.out.println("YES");
else
System.out.println("NO");
t--;
}
}
}
```
```def isPalin( n, res):

if(n == 0):
return res

res = res * 10 + n % 10
return isPalin(n // 10, res)

for _ in range(int(input())):

n = int(input())
rev = isPalin(n, 0)

if n == rev:
print("YES")

else:
print("NO")

```

[forminator_quiz id="996"]

This article tried to discuss the Recursion. Hope this blog helps you understand the concept. To practice more problems on Recursion you can check out MYCODE | Competitive Programming