Count the occurrence of digit K in a given number N using Recursion
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)
Last Updated :
22 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...