Percebi que a solução do exercício é executada definindo primeiramente um valor de referência para chegarmos ao valor do fatorial, no caso o número 5, e assim o contador vai sendo multiplicado em ordem crescente (1x2x3x4x5 e por diante) até que chegue no valor determinado.
let fatorial = 1;
for (let i = 2; i <= numero; i++) {
console.log(`Agora o número é ${fatorial}`) // mostrando o resultado no console.
fatorial *= i;
}
Ao invés da ordem decrescente (5x4x3x2x1). Então olhando isso resolvi refazer o trecho do código da maneira "convencional" afim de exercitar minha lógica no código. Adianto que aceito sugestões ou conselhos para a lógica, estamos juntos para aprender!!
function calcularFatorial(numero) {
if (numero === 0 || numero === 1) {
return 1;
}
let fatorial; // receberá o resultado da fatoração
let proxNumFatorial = numero - 1; // será o próximo multiplicador depois do número declarado, se o NUM declarado é 8, o próx será 7
let resultadoInicial = numero * proxNumFatorial; // guardará o resultado inicial do NUM declarado e do seu próximo multiplicador
console.log(`O número ${numero} multiplicado por ${proxNumFatorial} é igual a: `);
console.log(resultadoInicial);
function diminuirNumeroFatorial() { // função que diminui o multiplicador
return proxNumFatorial - 1;
}
let diminuaNumero = diminuirNumeroFatorial(); // guardando a função dentro de uma variável.
if (diminuaNumero >= 1) { // condição onde detecta se o multiplicador é maior ou igual ao multiplicador mínimo, se sim executará as instruções abaixo
fatorial = resultadoInicial; // fatorial guarda o valor do resultado inicial
for (let i = diminuaNumero; i > 1; i--) { // estrutura de repetição, onde se i for maior ou igual ao multiplicador mínimo, será decrementado após as intruções
console.log(`O número ${fatorial} multiplicado por ${i} é igual a: `);
fatorial *= i; // multiplicação onde fatorial recebe o valor de fatorial * i, que após o final da intrução o valor de i diminui até que chegue a 1
console.log(fatorial);
}
}
return fatorial // retorna o resultado da fatoração
}
// Exemplo de uso
let numero = 8;
let resultado = calcularFatorial(numero);
console.log(`O fatorial de ${numero} é ${resultado}`);