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: 4
Explicación:
La aparición del dígito ‘0’ en 10000 es 4.
Entrada: N = 51435, K = 5
Salida: 2
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)