Open In App

Count the occurrence of digit K in a given number N using Recursion

Last Updated : 22 Dec, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given an integer N greater than 0, the task is to find the occurrence of digit K present in the given number N.

Examples: 

Input: N = 10000, K = 0 
Output:
Explanation: 
Occurrence of ‘0’ digit in 10000 is 4.

Input: N = 51435, K = 5 
Output:
Explanation: 
Occurrence of ‘5’ digit in 51435 is 2 

Approach: The idea is to use recursion to extract the least significant digit of the number in each step and Check that the digit extracted is equal to the given digit is K or not. Finally, recurse for checking the next digits of the number by computing the integer division of that number by 10.

Below is the implementation of the above approach:

C++




// C++ implementation to count
// the occurrence of a digit in
// number using Recursion
 
#include <bits/stdc++.h>
 
using namespace std;
 
// Function to count the digit K
// in the given number N
int countdigits(int n, int k)
{
    if (n == 0)
        return 0;
 
    // Extracting least
    // significant digit
    int digit = n % 10;
    if (digit == k)
        return 1 + countdigits(n / 10, k);
 
    return countdigits(n / 10, k);
}
 
// Driver Code
int main()
{
    int n = 1000;
    int k = 0;
 
    cout << countdigits(n, k) << endl;
    return 0;
}


Java




// Java implementation to count
// the occurrence of a digit in
// number using Recursion
 
import java.util.*;
  
class GFG {
     
    // Function to count the digit K
    // in the given number N
    static double countdigits(int n, int k)
    {
        if (n == 0)
            return 0;
  
        // Extracting least
        // significant digit
        int digit = n % 10;
        if (digit == k)
            return 1 + countdigits(n / 10, k);
  
        return countdigits(n / 10, k);
    }
  
    // Driver Code
    public static void main(String[] args)
    {
        int n = 1000;
        int k = 0;
        System.out.println(countdigits(n, k));
    }
}


Python3




# Python implementation to count
# the occurrence of a digit in
# number using Recursion
 
# Function to count the digit K
# in the given number N
def countdigits(n, k):
    if n == 0:
        return 0
          
    # Extracting least
    # significant digit
      
    if n % 10== k:
        return 1 + countdigits(int(n / 10), k)
       
    else:
      return 0 + countdigits(int(n /10), k)
  
    return countdigits(n / 10, k)
 
# Driver Code
if __name__ == "__main__":
    n = 1000;
    k = 0;
    print(countdigits(n, k))


C#




// C# implementation to count
// the occurrence of a digit in
// number using Recursion
 
using System;
  
class GFG {
     
    // Function to count the digit K
    // in the given number N
    static double countdigits(int n,
                              int k)
    {
        if (n == 0)
            return 0;
  
        // Extracting least
        // significant digit
        int digit = n % 10;
        if (digit == k)
            return 1 +
             countdigits(n / 10, k);
  
        return countdigits(n / 10, k);
    }
  
    // Driver Code
    static public void Main()
    {
        int n = 1000;
        int k = 0;
        Console.WriteLine(countdigits(n, k));
    }
}


Javascript




<script>
 
// Javascript implementation to count
// the occurrence of a digit in
// number using Recursion
 
 
// Function to count the digit K
// in the given number N
function countdigits(n, k)
{
    if (n == 0)
        return 0;
 
    // Extracting least
    // significant digit
    var digit = n % 10;
    if (digit == k)
        return 1 + countdigits(n / 10, k);
 
    return countdigits(n / 10, k);
}
 
// Driver Code
var n = 1000;
var k = 0;
document.write( countdigits(n, k));
 
 
</script>


Output: 

3

 

Time Complexity: O(log10n)
Auxiliary Space: O(log10n)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads