Recursividad en Java - Calculando el Factorial de un Número

Hola a todos, hoy vamos a calcular el factorial de un número implementando recursividad en la clase que vamos a construir. 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:

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));
  
 }

}

Comments