Algoritmos Recursivos - Ejercicios Resueltos Parte 2
Bienvenido nuevamente a otro artículo sobre recursividad donde continuaré explicando con unos cuantos ejercicios adicionales para mejorar la práctica de la lógica en ésta temática.
1.- Encontrar el máximo común divisor de dos números:
public static int mcd(int a, int b) { if(b == 0) { return a; } else { return mcd(b, a % b); } }
Explicación: Si a la función mcd enviamos los parámetros respectivos a = 10 y b = 5, tendremos la siguiente solución. Si 5 = 0; como no es verdadero se ejecutará las sentencias dentro del sino (else) llamando otra vez a la función mcd con nuevos parámetros (5, 10%5), quiere decir (5, 0) pues el signo de porcentaje (%) permitirá obtener el residuo de la división solicitada, por tanto, 10 entre 5 tiene como residuo 0. Ahora b = 0 por lo tanto el máximo común divisor es 5, finalizando así el ciclo recursivo.
Puedes descargarlo completo clic aquí.
Puedes descargarlo completo clic aquí.
2.- Mostrar los dígitos de un número al revés por ejemplo se ingresa el 1234, el resultado debe ser 4321.
public static String invertir(int n) { if(n / 10 == 0) { return String.valueOf(n); } else { return n % 10 + invertir( n / 10 ); } }
Explicación: Siendo el número dividido entre 10 para poder obtener el cociente y luego el residuo debe ir concatenando cada vez que se divida, de esta manera 1234, iniciaría por 4, siguiente 3, a continuación de 2 y por último 1.
Puedes descargarlo completo clic aquí.
Puedes descargarlo completo clic aquí.
3.- Encontrar el Mínimo Común Múltiplo
public static int mcm(int b, int a) { return (a * b) / mcd(b, a); }
Explicación: Cuando ya se tiene la solución recursiva al Máximo Común Divisor es mucho más sencillo poder encontrar el Mínimo Común Múltiplo para ello solamente debes multiplicar ambos números y dividirlos entre esa función mcd.
Puedes descargarlo completo clic aquí.
Puedes descargarlo completo clic aquí.
:D
ResponderEliminar