Bonfire: Factorialize a Number

He decidido ir publicando los desafíos de los bonfires conforme los voy completando y los iré explicando en la mejor medida que pueda.


Enunciado: Nos piden que calculemos el factorial de un número entero que nos pasan como argumento.

Pista: Si representamos un número entero con la letra n, el factorial de n es todos los numeros positivos iguales o menores a n. Factorial de 5!=5*4*3*2*1

Recomendaciones de lectura: 

Código inicial:

function factorialize(num) {
    return num;
}

factorialize(5);

Lo primero que he hecho ha sido crear una variable llamada final para almacenar el valor que nos pasan por argumento, para así más tarde poder usarlo en otra parte del código.

var final=num;

Lo siguiente que he hecho ha sido crear un bucle for para recorrer desde el número 2 hasta el valor final que antes habíamos creado, que al principio tiene el mismo valor que num.

Dentro del bucle for lo que hace es que cada iterración multiplica num por el incremento de i. Es decir, si nuestro num es 10; iterración 2: num=10*2;iterración 3; num=20*3 iterración 4; num=60*4 y etc..

for(var i=1;i<final;i++){
    num=num*i;
    console.log(num);
}

Y por último, he creado una condicional if que lo que hace es que en caso de que nos den el número 0, lo convierte al número 1.

if(num===0) num=1;

El código final quedaría de esta forma.

function factorialize(num) {

    var final=num;
    if(num===0) num=1;
    for(var i=1;i<final;i++){
        num=num*i;
    }

    return num;
}

factorialize(10);

Espero que os sirva de ayuda a algunos y os haya aclarado las dudas que tuvierais.

Desarrollador a tiempo completo, amante del buen rol y los juegos de plataforma. Mi tiempo libre me gusta invertirlo para ver series y malas peliculas