Artículos
Java

Factorial de un número

19/Nov/2006

El factorial de un número es la multiplicación de los número que van del 1 a dicho número. Para expresar el factorial se suele utilizar la notación n!. Así la definición es la siguiente:

n! = 1 x 2 x 3 x 4 x 5 x ... x (n-1) x n.

Factorial mediante bucles while

Siguiendo esta simple expresión podríamos codificarlo en Java de una forma sencilla utilizando un bucle while que nos permita realizar el decremento de valores.

Lo primero es definir la variable que va a contener el factorial y la que definirá el número sobre el que vamos a calcular el factorial.

double factorial = 1;
// El número elegido para el factorial es el 30
double numero=30;

Lo siguiente es hacer el bucle en el cual iremos decrementando el número y multiplicando por el valor del factorial. En este caso nos apoyamos en un bucle while, el cual terminará cuando le valor del número llegue a 1.

while ( numero!=0) {
  factorial=factorial*numero; 
  numero--;
}

Solo nos quedará el volcar el valor por pantalla el valor del factorial:

System.out.println(factorial);

Factorial de un número de forma recursiva

El uso de un bucle while es una forma muy sencilla de implementar el factorial. Si bien, tenemos otra forma de implementarlo. En este caso el factorial se define de una forma recursiva. Esta definición fue realizada por el matemático frances Christian Kramp.

La definición viene a decir lo siguiente:

si n=0
  entonces el factorial es 1
si n > 1
  entonces (n-1)! x n

Esta implementación se puede definir con recursividad en la programación Java de la siguiente forma:

public int factorial (double numero) {
  if (numero==0)
    return 1;
  else
    return numero * factorial(numero-1);
}

Como podemos ver es un calco de la definición de Christian Kramp. En esta definición el método se irá llamando recursivamente hasta que se llegue a calcular el factorial del número 0.

Para volcar el dato por pantalla deberemos de invocar al método factorial() con el valor del número del que queremos calcular su factorial y mostrarlo por consola mediante un objeto System.out. Lo cual nos generamos en la siguiente línea de código:

System.out.println(factorial(40));

De esta manera ya tenemos dos formas de poder calcular un factorial. ¿Cuál estabas utilizando hasta ahora? ¿Cambiarás? Cuéntanos tus opiniones en los comentarios de la página.

Código Fuente

Descárgate el código fuente de Factorial de un número
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Factorial de un número

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
203 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios