Hola a todos, hoy vamos a calcular el factorial de un número implementando recursividad en una clase que vamos a construir en Java.
La recursividad es la propiedad que tienen los métodos en Java de invocarse a si mismos.
Recuerden que el factorial de un número, es el producto de la serie de números que va desde 1 hasta el número. Ejemplo: El factorial de 5, que se escribe: 5! es igual a: 5 x 4 x 3 x 2 x 1 = 120.
Adicional a la construcción de la clase que implementa recursividad, vamos a resolver el problema también utilizando una clase con un método basado en iteraciones.
Veamos entonces estas dos clases y su implementación:
A continuación el código fuente:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package recursividad; | |
public class FactorialRecursivo { | |
//Método recursivo para calcular el factorial de un número | |
public long calcularFactorial(long fac) { | |
if(fac <= 1) { | |
return 1; | |
} | |
else { | |
return fac * calcularFactorial(fac - 1); | |
} | |
} | |
} | |
package recursividad; | |
public class FactorialIterativo { | |
//Método iterativo para calcular el factorial de un número | |
public long calcularFactorial(long fac) { | |
long factorial = 1; | |
while(fac >= 1){ | |
factorial *= fac; | |
fac--; | |
} | |
return factorial; | |
} | |
} | |
package recursividad; | |
public class FactorialTest { | |
public static void main(String[] args) { | |
// TODO Auto-generated method stub | |
long i = 10; | |
FactorialRecursivo factorialRec = new FactorialRecursivo(); | |
FactorialIterativo factorialIte = new FactorialIterativo(); | |
System.out.println("Método Recursivo -> El factorial de " + i + | |
" es: " + factorialRec.calcularFactorial(i)); | |
System.out.println("-------------------------------------------"); | |
System.out.println("Método Iterativo -> El factorial de " + i + | |
" es: " + factorialIte.calcularFactorial(i)); | |
} | |
} |
No hay comentarios.:
Publicar un comentario