Cantidad de Dígitos de un numero calculado recursivamente (Java)



Problema: 

Escribe un proceso recursivo que permita calcular la cantidad de dígitos que tiene un numero positivo n

Para solucionar este problema se realizo el siguiente código:


    public static void main(String[] args) {        
       
       System.out.println(cantDigitos(1299643));
    }
    
    public static int cantDigitos(int n){
        if (n==0){
            return 0;
        }
        return 1+cantDigitos(n/10);
    }


El método cantDigitos(int n) es el código principal y recursivo

Explicación:

  • Condición base: Si n == 0, el método devuelve 0, porque un número con valor 0 no tiene más dígitos por contar. Esta es la condición que detiene la recursión.
  • Caso recursivo: Si n no es igual a 0, el método añade 1 (para contar el dígito actual) y luego llama recursivamente a cantDigitos(n / 10), dividiendo el número por 10 para eliminar el dígito menos significativo (el último dígito de la derecha) y continuar con el siguiente.

Ejemplo con n = 1299643:

El programa realiza los siguientes pasos:

  1. Primera llamada: cantDigitos(1299643)1299643 != 0, por lo que añade 1 y llama a cantDigitos(129964) (al dividir entre 10).
  2. Segunda llamada: cantDigitos(129964)129964 != 0, por lo que añade 1 y llama a cantDigitos(12996).
  3. Tercera llamada: cantDigitos(12996)12996 != 0, añade 1 y llama a cantDigitos(1299).
  4. El proceso continúa dividiendo el número entre 10 en cada llamada y sumando 1 por cada dígito.
  5. Finalmente, cuando el número llega a 0 en una de las llamadas, la recursión se detiene y comienza a devolver la suma acumulada de todos los dígitos.



Comentarios

Entradas populares de este blog

Calculo Numérico (Oscar Zabalaga Montaño)

Potencia de un numero programacion recursiva (Java)

Teoria de Automatas (Victor Hugo Montaño)