Oi Luiz! Tudo certo?
Vamos dar uma olhada no seu código para calcular o fatorial. Parece que há alguns pontos que precisam ser ajustados. Vou explicar o que está acontecendo e sugerir algumas correções.
Declaração da variável resultadoFatorial
: No seu código, a variável resultadoFatorial
está sendo declarada dentro do loop while
, o que faz com que ela seja redefinida a cada iteração. Além disso, o cálculo do fatorial está incorreto, pois você está multiplicando apenas dois números e retornando imediatamente o resultado.
Retorno dentro do loop: O return
dentro do while
faz com que a função termine na primeira iteração, não permitindo que o loop continue para calcular o fatorial corretamente.
Condição do loop: A condição do while
deve ser ajustada para calcular o fatorial corretamente até o número 1.
Aqui está uma versão corrigida do seu código:
function fatorial(numeroASerFatorado) {
let resultadoFatorial = 1; // Inicializa com 1, pois o fatorial de 0 é 1
while (numeroASerFatorado > 1) { // Continua até que o número seja maior que 1
resultadoFatorial *= numeroASerFatorado; // Multiplica o resultado pelo número atual
numeroASerFatorado--; // Decrementa o número
}
console.log(`O fatorial é ${resultadoFatorial}`);
return resultadoFatorial; // Retorna o resultado final
}
fatorial(8);
Nesse código, começamos com resultadoFatorial
igual a 1, pois o fatorial de 0 é 1. O loop while
continua até que numeroASerFatorado
seja maior que 1, multiplicando resultadoFatorial
pelo número atual e depois decrementando numeroASerFatorado
. Por fim, o resultado é impresso e retornado.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.