Count the occurrence of digit K in a given number N using Recursion
Last Updated :
22 Dec, 2022
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 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++
#include <bits/stdc++.h>
using namespace std;
int countdigits( int n, int k)
{
if (n == 0)
return 0;
int digit = n % 10;
if (digit == k)
return 1 + countdigits(n / 10, k);
return countdigits(n / 10, k);
}
int main()
{
int n = 1000;
int k = 0;
cout << countdigits(n, k) << endl;
return 0;
}
|
Java
import java.util.*;
class GFG {
static double countdigits( int n, int k)
{
if (n == 0 )
return 0 ;
int digit = n % 10 ;
if (digit == k)
return 1 + countdigits(n / 10 , k);
return countdigits(n / 10 , k);
}
public static void main(String[] args)
{
int n = 1000 ;
int k = 0 ;
System.out.println(countdigits(n, k));
}
}
|
Python3
def countdigits(n, k):
if n = = 0 :
return 0
if n % 10 = = k:
return 1 + countdigits( int (n / 10 ), k)
else :
return 0 + countdigits( int (n / 10 ), k)
return countdigits(n / 10 , k)
if __name__ = = "__main__" :
n = 1000 ;
k = 0 ;
print (countdigits(n, k))
|
C#
using System;
class GFG {
static double countdigits( int n,
int k)
{
if (n == 0)
return 0;
int digit = n % 10;
if (digit == k)
return 1 +
countdigits(n / 10, k);
return countdigits(n / 10, k);
}
static public void Main()
{
int n = 1000;
int k = 0;
Console.WriteLine(countdigits(n, k));
}
}
|
Javascript
<script>
function countdigits(n, k)
{
if (n == 0)
return 0;
var digit = n % 10;
if (digit == k)
return 1 + countdigits(n / 10, k);
return countdigits(n / 10, k);
}
var n = 1000;
var k = 0;
document.write( countdigits(n, k));
</script>
|
Time Complexity: O(log10n)
Auxiliary Space: O(log10n)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...