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)

Logica

Teoria de Automatas (Victor Hugo Montaño)