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

• Difficulty Level : Basic
• Last Updated : 09 Nov, 2021

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``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``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

 ``

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.

My Personal Notes arrow_drop_up