Open In App

Recursive program to check if number is palindrome or not

Improve
Improve
Like Article
Like
Save
Share
Report

Given a number, the task is to write a recursive function that checks if the given number is a palindrome or not. 
 

Examples: 

Input: 121
Output: yes

Input: 532
Output: no

 

The approach for writing the function is to call the function recursively till the number is wholly traversed from the back. Use a temp variable to store the reverse of the number according to the formula obtained in this post. Pass the temp variable in the parameter and once the base case of n==0 is achieved, return temp which stores the reverse of a number. 
Below is the implementation of the above approach: 
 

C++




// Recursive C++ program to check if the
// number is palindrome or not
#include <bits/stdc++.h>
using namespace std;
 
// recursive function that returns the reverse of digits
int rev(int n, int temp)
{
    // base case
    if (n == 0)
        return temp;
 
    // stores the reverse of a number
    temp = (temp * 10) + (n % 10);
 
    return rev(n / 10, temp);
}
 
// Driver Code
int main()
{
 
    int n = 121;
     
    int temp = rev(n, 0);
   
    if (temp == n)
        cout << "yes" << endl;
    else
        cout << "no" << endl;
    return 0;
}


Java




// Recursive Java program to
// check if the number is
// palindrome or not
import java.io.*;
 
class GFG
{
 
// recursive function that
// returns the reverse of digits
static int rev(int n, int temp)
{
    // base case
    if (n == 0)
        return temp;
 
    // stores the reverse
    // of a number
    temp = (temp * 10) + (n % 10);
 
    return rev(n / 10, temp);
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 121;
    int temp = rev(n, 0);
     
    if (temp == n)
        System.out.println("yes");
    else
        System.out.println("no" );
}
}
 
// This code is contributed by anuj_67.


Python3




# Recursive Python3 program to check
# if the number is palindrome or not
 
# Recursive function that returns
# the reverse of digits
def rev(n, temp):
 
    # base case
    if (n == 0):
        return temp;
 
    # stores the reverse of a number
    temp = (temp * 10) + (n % 10);
 
    return rev(n // 10, temp);
 
# Driver Code
n = 121;
temp = rev(n, 0);
 
if (temp == n):
    print("yes")
else:
    print("no")
 
# This code is contributed
# by mits


C#




// Recursive C# program to
// check if the number is
// palindrome or not
using System;
 
class GFG
{
 
// recursive function
// that returns the
// reverse of digits
static int rev(int n,
               int temp)
{
    // base case
    if (n == 0)
        return temp;
 
    // stores the reverse
    // of a number
    temp = (temp * 10) +
               (n % 10);
 
    return rev(n / 10, temp);
}
 
// Driver Code
public static void Main ()
{
    int n = 121;
    int temp = rev(n, 0);
     
    if (temp == n)
        Console.WriteLine("yes");
    else
        Console.WriteLine("no" );
}
}
 
// This code is contributed
// by anuj_67.


PHP




<?php
// Recursive PHP program to check
// if the number is palindrome or not
 
// Recursive function that returns
// the reverse of digits
function rev($n, $temp)
{
    // base case
    if ($n == 0)
        return $temp;
 
    // stores the reverse of a number
    $temp = ($temp * 10) + ($n % 10);
 
    return rev($n / 10, $temp);
}
 
// Driver Code
$n = 121;
$temp = rev($n, 0);
 
if ($temp != $n)
    echo "yes";
else
    echo "no";
 
// This code is contributed
// by Sach_Code
?>


Javascript




<script>
 
// Recursive Javascript program to check if the
// number is palindrome or not
 
// recursive function that returns the reverse of digits
function rev(n, temp)
{
    // base case
    if (n == 0)
        return temp;
 
    // stores the reverse of a number
    temp = (temp * 10) + (n % 10);
 
    return rev(Math.floor(n / 10), temp);
}
 
// Driver Code
 
    let n = 121;
     
    let temp = rev(n, 0);
     
    if (temp == n)
        document.write("yes" + "<br>");
    else
        document.write("no" + "<br>");
 
// This code is contributed by Mayank Tyagi
 
</script>


Output: 

yes

 

Time complexity: O(log10N), as we require digits in the given number N.
Auxiliary space: O(log10N), for using recursive stack space.



Last Updated : 05 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads