Sunday, September 7, 2025
HomeData Modelling & AIHow to solve problems related to Number-Digits using Recursion?

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

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. 
 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Dominic
32271 POSTS0 COMMENTS
Milvus
82 POSTS0 COMMENTS
Nango Kala
6641 POSTS0 COMMENTS
Nicole Veronica
11807 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11869 POSTS0 COMMENTS
Shaida Kate Naidoo
6754 POSTS0 COMMENTS
Ted Musemwa
7030 POSTS0 COMMENTS
Thapelo Manthata
6705 POSTS0 COMMENTS
Umr Jansen
6721 POSTS0 COMMENTS