Aprovecha el precio especial

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comienza ahora

Termina en:

02d

00h

54m

19s

2

¿Cómo calcular el factorial de un número en Javascript?

Primero lo primero, ¿Qué es la recursividad?


Antes de que entremos de lleno a crear la función para calcular el factorial de un número, debemos entender lo que es la recursividad 🤓☝. Si bien suena algo compleja, en realidad maneja una metodología simple, la recursividad es un proceso en el que una función se llama a sí misma de forma repetida, hasta que se satisface alguna condición, a esta condición la llamamos caso base.

Por ejemplo, vamos a hacer una función que imprima la palabra “Seguimos iterando” una cantidad i de veces:

functioniteracionRecursiva(i){
	//Caso Baseif(i == 0){
		console.log("Ya se acabo!");return;
	}

	//Instrucciones
	console.log("Seguimos iterando");
	iteracionRecursiva(i - 1);
}

Si pruebas este código obtendrás esta salida:

"Seguimos iterando""Seguimos iterando""Seguimos iterando""Seguimos iterando""Seguimos iterando""Ya se acabo!"

Acabamos de crear un bucle ¡Sin bucles!

¡Manos a la obra! Hagamos el caso base


Ya vimos un ejemplo del caso base, este caso nos indica cuando nuestra función recursiva debe dejar de llamarse a sí misma. Es indispensable que tengamos un caso base para hacer nuestras funciones recursivas, ya que, de otro modo, nuestra función se llamaría a sí misma infinitas veces, es decir, crearíamos un bucle infinito, y no queremos eso, ¿Cierto?

Ahora sí, pensemos ¿Cuál sería el caso base del factorial de un número?. Una forma de identificarlo es pensar en un patrón que siempre se cumple al dividir nuestro problema en problemas más pequeños, por ejemplo, veamos los factoriales de algunos números:

5! = 5 * 4 * 3 * 2 * 1
4! = 4 * 3 * 2 * 1
256! = 256 * 255 * 254 … * 3 * 2 * 1
0! = 1

¿Qué patrón puedes notar aquí? Si observamos bien, podemos notar que el factorial de un número siempre, sin excepciones, se multiplica por uno al final, incluso cuando se trata del factorial de 0, esto quiere decir que podemos multiplicar un número por ese número menos uno (n * (n-1)) una y otra vez hasta que n sea 1 ¿Cierto?. Puede que ya en este punto imagines como sería el código.

¡Hagamos el código!


Ahora que ya sabemos que nuestro caso base es multiplicar nuestro número por uno (Cuando n = 0, ya que trabajamos con iteraciones al revés, es decir: 5,4,3,2,1 y así), podemos imaginar un caso base en código:

functionfactorial(n){
	//Caso baseif(n == 0){
		return1;
	}
}

Bien, pero, nuestro factorial no puede funcionar solo con el caso base, y es aquí dónde nuestra función recursiva hará su magia, ¿Cuál es el factorial de 3!? Pues 3 * 2!, ¿Y el de 2!? Pues 2 * 1!, y así sucesivamente, es decir, que podemos decir que el factorial de n es n * factorial(n-1) ¿Cierto?

Planteemoslo en código:

functionfactorial(n){
	//Caso baseif(n == 0){
		return1;
	}

	//Instrucciones
	returnn *= factorial(n - 1);
}

¡Y listo! Ya nuestra función factorial está hecha, puedes probarla por ti mismo 😉.

Escribe tu comentario
+ 2