Skip to content
Related Articles

Related Articles

Count the occurrence of digit K in a given number N using Recursion
  • Difficulty Level : Easy
  • Last Updated : 14 May, 2021

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 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
    digit = n % 10
      
    if digit == k:
        return 1 + countdigits(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

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :