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);
}
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:
- Primera llamada: cantDigitos(1299643)1299643 != 0, por lo que añade 1 y llama a cantDigitos(129964) (al dividir entre 10).
- Segunda llamada: cantDigitos(129964)129964 != 0, por lo que añade 1 y llama a cantDigitos(12996).
- Tercera llamada: cantDigitos(12996)12996 != 0, añade 1 y llama a cantDigitos(1299).
- El proceso continúa dividiendo el número entre 10 en cada llamada y sumando 1 por cada dígito.
- 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
Publicar un comentario