Cuente la ocurrencia del dígito K en un número dado N usando Recursion

Dado un número entero N mayor que 0, la tarea es encontrar la ocurrencia del dígito K presente en el número dado N.
Ejemplos: 
 

Entrada: N = 10000, K = 0 
Salida:
Explicación: 
La aparición del dígito ‘0’ en 10000 es 4.
Entrada: N = 51435, K = 5 
Salida:
Explicación: 
La aparición del dígito ‘5’ en 51435 es 2 
 

Enfoque: La idea es utilizar la recursividad para extraer el dígito menos significativo del número en cada paso y comprobar que el dígito extraído es igual al dígito K dado o no. Finalmente, recurse para verificar los siguientes dígitos del número calculando la división entera de ese número por 10.
A continuación se muestra la implementación del enfoque anterior:
 

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>
Producción: 

3

 

Complejidad de tiempo: O (log 10 n)

Espacio Auxiliar: O(log 10 n)

Publicación traducida automáticamente

Artículo escrito por mv15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *