Open In App

How to solve problems related to Number-Digits using Recursion?

Improve
Improve
Like Article
Like
Save
Share
Report

The process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called a recursive function. Using a recursive algorithm, certain problems can be solved quite easily. A method to solve the number digit problems using recursion is discussed in this article. 
Two main components exist for any recursive function are: 
 

  1. Base Case: A base case is a condition which stops the recursive function calls. A recursive function cannot be formed without a base case because the stack overflow error occurs when the base case is not defined as the function will keep on repeatedly calling itself. For a recursive solution, there can be more than one base case.
  2. Recursive Case: For all the other conditions apart from the base cases, the function calls itself with a new set of values such that after some finite recursive calls, the function finally calls for a base case and stops itself.

Let’s visualize the recursion by extracting individual digits from a given number. This is the basic step in performing many other mathematical operations. 
Below is the implementation to extract every individual digit of a number: 
 

C++




// Recursive function to extract
// individual digit for a given
// number
#include<bits/stdc++.h>
using namespace std;
 
void extract(int n){
 
    // If n is a zero
    // then, stop the recursion
    if(n == 0)
    {
        return;
    }
 
   
    // Call the function recursively
    // for n // 10 which basically
    // calls for the remaining number
    // after removing the last digit
    extract(n / 10);
     
      // print the current last digit of the number
      // with n%10;
    cout << n % 10 << endl;
 
}
 
// Driver code
int main()
{
    extract(1234);
    return 0;
}
 
// This code is contributed by 29AjayKumar


Java




// Recursive function to extract
// individual digit for a given
// number
import java.io.*;
import java.util.*;
class GFG{
 
static void extract(int n)
{
     
    // If n is a zero
    // then, stop the recursion
    if(n == 0)
    {
        return;
    }
 
    // Call the function recursively
    // for n/10 which basically
    // calls for the remaining number
    // after removing the last digit
    extract(n / 10);
   
      // print the current last digit of the number
      // with n%10;
      System.out.println(n%10);
}
 
// Driver code
public static void main(String[] args)
{
    extract(1234);
}
}
 
// This code is contributed by Rohit_ranjan


Python3




# Recursive function to extract
# individual digit for a given
# number
def extract(n):
 
    # If n is a zero
    # the stop the recursion
    if(n == 0):
        return
 
    # Call the function recursively
    # for n // 10 which basically
    # calls for the remaining number
    # after removing the last digit
    extract(n//10)
     
    # print the last digit with n%10
    print(n % 10)
 
     
# Driver code
if __name__ == "__main__":
    extract(1234)


C#




// Recursive function to extract
// individual digit for a given
// number
using System;
 
class GFG{
     
static void extract(int n)
{
     
   // If n is a zero
   // then, stop the recursion
    if(n  == 0)
    {
        return;
    }
 
    // Call the function recursively
    // for n // 10 which basically
    // calls for the remaining number
    // after removing the last digit
    extract(n / 10);
   
      // print the current last digit of the number
      // with n%10;
    Console.Write(n % 10 + "\n");
 
}
 
// Driver code
public static void Main(String[] args)
{
    extract(1234);
}
}
 
// This code is contributed by sapnasingh4991


Javascript




<script>
 
    // Recursive function to extract
    // individual digit for a given number
     
    function extract(n)
    {
 
        // If n is a zero
        // then stop the recursion
        if(parseInt(n) == 0)
        {
            return;
        }
         
        // Call the function recursively
        // for n // 10 which basically
        // calls for the remaining number
        // after removing the last digit
        extract(parseInt(n / 10, 10));
         
        // print the current last digit of the number
          // with n%10;
        document.write(n % 10 + "</br>");
 
    }
     
    extract(1001);
 
</script>


Output

1
2
3
4

Similar to this, various other operations can be performed using recursion. Every iterative function can be computed using the recursion. 
 



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