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!

Last Updated on March 28, 2022 by Ria Pathak

CONCEPTS USED:

Recursion

DIFFICULTY LEVEL:

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

Leave a Reply

Your email address will not be published. Required fields are marked *