Para este ejercicio no necesitamos importar ninguna librería.
Creamos la clase principal, en este caso TDARecursividad2.
Dentro del main, creamos un objeto de la clase, aquí le hemos asignado objFactorial.
Crear dos mensajes para mostrar en consola: - Uno para mostrar el factorial mediante bucle.
- Uno para mostrar el factorial mediante recursividad.
Concatenar al mensaje el objeto seguido del método que vamos a mostrar, y como argumento debe contener un número.
MEDIANTE BUCLECreamos un método de tipo public int, y como argumento recibirá un numero entero (n).
Declaramos una variable entera factor que será igual a uno.
Crear un if que indicará que si n es menor a cero, debe retornar cero.
Si no, crear un bucle while, y mientras n sea diferente de cero, el factor será igual a n multiplicándole el mismo factor.
Luego a n se le va restando de uno en uno.
Por último solo retornar factor.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ La lógica de este método indica que en la primera corrida del programa, factor valdrá 1. Luego se ejecutará el while, y como nosotros anteriormente en el main, definimos un número(5) como parámetro para el método y éste es mayor a cero; entonces se ejecuta el factor = 1, n = 5 y se multiplica por el mismo factor dando como resultado = 5.
A n se le resta 1, entonces en la segunda corrida del while, n ya no vale 5, si no 4. Y así hasta que vale cero, y ya no se ejecuta más. Por lo tanto nos va quedando una resta de este estilo 5*4*3*2*1 y cada numero se va multiplicando por el siguiente, quedando almacenado en factor.
MEDIANTE RECURSIVIDADCrear un método de tipo public int, y como argumento recibirá un número entero (n).
Luego un if con la condición de que si n es menor a cero, que retorne cero.
Si no, anidar otro if y mientras n sea igual a cero, que retorne uno. Si no, que retorne n multiplicandolo por el mismo método y restándole uno.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Tenemos el numero n que vale 5. No entra en en los dos if, si no hasta el segundo else. Entonces retorna n(5) y lo multiplica por el argumento del método que es el mismo 5 y le resta uno.
Ahora n vale 4 y vuelve a ocurrir lo mismo, entra hasta el segundo else, retorna n(4), lo multiplica por 3 y así sucesivamente hasta llegar a cero.
Cuando llega a cero, entonces ya entra en el segundo if y retorna 1.
Este sería el resultado. De ambas formas se llega a lo mismo
|
Comentarios
Publicar un comentario