Calcular el factorial con Javascript

Curso de Javascript Online. Desde cero.

14.  
19.  
25.  
34.  

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Hoy os propongo el típico ejercicio del factorial. Calcular el factorial de un número dado es un ejercicio super típico que nos encontramos en los primeros pasos del aprendizaje de cualquier lenguaje de programación.

¿Qué es el factorial de un número?

El factorial de un número es el resultado de multiplicar dicho número por todos los anteriores. Por tanto, el factorial de 5 será 5x4x3x2x1

El factorial de un número se representa con un signo de exclamación (!) detrás del número.

Algunos factoriales de número son:

  • 3! = 3 x 2 x 1 = 6
  • 6! = 6 x 5 x 4 x 3 x 2 x 1 = 720
  • 1! = 1
  • 0! = 1 Es curioso que el factorial de 0 no sea 0, sino 1. Esto es así porque se adopta el convenio de que 0! = 1 debido a la propiedad del producto vacío. De todas formas, para nuestro objetivo bastará con que sepas que el factorial de 0 es 1 para meter un condicional if donde corresponda.

Enunciado del ejercicio

Dado un número, calcula su factorial.

¿Cómo vamos a resolver este ejercicio?

Necesitaremos un bucle para ir multiplicando los números repetidas veces. Por otra parte, es posible multiplicar los números de menor a mayor o de mayor a menor.

Para resolver este ejercicio, utilizaré dos bucles: el bucle for y el bucle while. Resolveré este ejercicio con cada uno de esos dos bucles yendo de menor a mayor y yendo de mayor a menor. Por tanto, en este video tutorial expongo cuatro formas diferentes de resolver este ejercicio.

Para resolver el ejercicio, necesitaremos una variable que almacenará el número cuyo factorial queremos calcular. También necesitaremos una variable que almacenará el resultado de las sucesivas operaciones. Esta variable irá acumulando los resultados parciales hasta ofrecer el resultado final. Así, pues, para el factorial de 5, en la primera iteración del bucle la variable resultado valdrá 20 (5×4), luego valdrá 60 (20×3), y luego 120 (60×2).

Finalmente, necesitaremos una tercera variable, que será el contador del bucle, encargado de controlar cuantas iteraciones (repeticiones voy). Este contador irá aumentando de 1 hasta el número cuyo factorial quiero calcular o disminuyendo desde dicho número hasta uno; dependiendo del método de resolución que escojamos

Como pequeño reto extra, es posible resolver este ejercicio definiendo dos variables en lugar de dos. ¡Ánimo!

Pruébalo tú mismo

A continuación tienes un código operativo mezclado con HTML, utilizando un bucle for (el ejercicio del factorial se puede resolver de muchas formas)

El resultado es:

const dato = 7; // Número del que queremos calcular el factorial
let r = 1;
for(let i = dato; i>0; i--){
    r *= i;
}
console.log(r);

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.