Factorial Javascript

13/Ago/2015 JavaScript , , ,

Hoy queremos calcular el factorial Javascript de un número. El factorial de un número es el producto de dicho número por todos los anteriores menores que él hasta llegar al cero. Por definición el factorial del número 0 es 1.

El resultado se representa por una notación abreviada que es el símbolo de cierre de exclamación (!).

Dicho esto, el factorial del número 5 sería:

5! = 5 * 4 * 3 * 2 * 1

Factorial Javascript sin pensar demasiado...

Rápidamente de la definición podríamos codificar la función factorial Javascript de la siguiente forma, con un bucle decreciente del argumento hasta llegar al 1 o ascendente desde el 1 hasta el número deseado que recibimos como argumento del que queremos calcular el factorial Javascript. El cero no haría falta considerarlo pues el su factorial es 1.

  1. function factorial (n) {
  2. var total = 1;
  3. for (i=1; i<=n; i++) {
  4. total = total * i;
  5. }
  6. return total;
  7. }

Observemos la definición

Si leemos bien la definición de factorial como número resultado de multiplicarse con todos los anteriores. En el ejemplo y siendo la multiplicación una operación asociativa (también lo es conmutativa, pero no importa para lo que queremos señalar):

5! = 5 * 4 * 3 * 2 * 1 
5! = 5 * (4 * 3 * 2 * 1)

el resultado entre paréntesis es precisamente el cálculo correspondiente al 4!.

5! = 5 * 4!

Observemos el ejemplo y si representamos matemáticamente la ecuación es fácil observar que el factorial de un número es dicho número multiplicado por el factorial del número anterior.
De manera genérica:

caso general:	 n! = n * (n-1)! 
caso base: 	    = 1   si n=0

Así que podemos calcular el factorial Javascript como una función recursiva, es decir, que hace referencia a sí misma multiplicando el argumento por el factorial javascript del número precedente:

  1. function factorialRecursivo (n) {
  2. if (n == 0){
  3. return 1;
  4. }
  5. return n * factorialRecursivo (n-1);
  6. }

Resumen sobre calcular factorial Javascript

Hemos aprendido a calcular el factorial de un número y lo hemos resuelto de dos maneras: como un bucle y practicando funciones recursivas.

Vídeos sobre Javascript


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D