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 : 02 Jun, 2020

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: 4
Explanation:
Occurrence of ‘0’ digit in 10000 is 4.

Input: N = 51435, K = 5
Output: 2
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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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));
    }
}

chevron_right


Output:

3

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :