O cálculo de fatorial é uma operação matemática muito comum e uma excelente forma de praticar lógica de programação. O fatorial de um número é o produto de todos os números inteiros positivos menores ou iguais a ele. Neste post, vamos aprender a calcular o fatorial em JavaScript, usando tanto loops quanto recursão.
O que é fatorial?
O fatorial de um número inteiro positivo nnn, denotado por n!n!n!, é o produto de todos os inteiros de 1 até nnn. A fórmula matemática é:
Por convenção, o fatorial de 0 é igual a 1:
0!=1
Exemplos:
- 5!=5×4×3×2×1=120
- 3!=3×2×1=6
Agora, vamos ver como implementar essa lógica em JavaScript.
Calculando o fatorial usando loop
A maneira mais simples de calcular o fatorial em JavaScript é usando um loop for
. Neste método, multiplicamos os números de 1 até nnn.
Exemplo:
function calcularFatorial(n) {
if (n < 0) return "Fatorial não é definido para números negativos."; // Validação para números negativos
let fatorial = 1;
for (let i = 1; i <= n; i++) {
fatorial *= i; // Multiplica o valor atual do fatorial pelo índice
}
return fatorial;
}
console.log(calcularFatorial(5)); // Saída: 120
Explicação:
- Iniciamos a variável
fatorial
com 1, porque o fatorial de 0 é 1 e, a partir daí, vamos multiplicando os números subsequentes. - O loop
for
percorre de 1 até nnn e multiplica o valor corrente pelo índice iii.
Calculando o fatorial usando recursão
Uma outra maneira, mais interessante e que utiliza uma característica importante da programação, é calcular o fatorial de forma recursiva. Na recursão, uma função chama a si mesma até alcançar um caso base.
A lógica recursiva para o fatorial é:
n!=n×(n−1)!
Exemplo de fatorial recursivo:
function calcularFatorialRecursivo(n) {
if (n < 0) return "Fatorial não é definido para números negativos."; // Validação para números negativos
if (n === 0 || n === 1) return 1; // Caso base: 0! = 1 e 1! = 1
return n * calcularFatorialRecursivo(n - 1); // Chamada recursiva
}
console.log(calcularFatorialRecursivo(5)); // Saída: 120
Explicação:
- O caso base é quando nnn é igual a 0 ou 1, pois 0!=10! = 10!=1 e 1!=11! = 11!=1.
- Para qualquer outro número, a função chama a si mesma com n−1n – 1n−1 até atingir o caso base.
Comparação entre loop e recursão
Ambas as abordagens têm o mesmo resultado, mas o que diferencia uma da outra é a forma como o problema é resolvido:
- Loop: A solução com loop é mais direta, ideal para quem está começando, pois evita a complexidade adicional da recursão.
- Recursão: É mais elegante e próxima da definição matemática, mas pode ser menos eficiente para números muito grandes, já que cada chamada recursiva consome memória.
Calculadora de fatorial simples com JavaScript e HTML
Veja um exemplo de como integrar o cálculo de fatorial com uma interface HTML simples para calcular o fatorial de qualquer número digitado pelo usuário:
HTML:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculadora de Fatorial</title>
</head>
<body>
<h1>Calculadora de Fatorial</h1>
<label for="numero">Digite um número:</label>
<input type="number" id="numero" placeholder="Ex: 5">
<button onclick="exibirFatorial()">Calcular Fatorial</button>
<p id="resultado"></p>
<script src="script.js"></script>
</body>
</html>
JavaScript (script.js):
// Função para calcular fatorial com loop
function calcularFatorial(n) {
if (n < 0) return "Fatorial não é definido para números negativos.";
let fatorial = 1;
for (let i = 1; i <= n; i++) {
fatorial *= i;
}
return fatorial;
}
// Função para exibir o fatorial na página
function exibirFatorial() {
const numero = document.getElementById('numero').value;
const resultado = calcularFatorial(numero);
document.getElementById('resultado').innerText = `O fatorial de ${numero} é ${resultado}`;
}
Explicação do funcionamento
- O usuário insere um número no campo de entrada.
- Ao clicar no botão “Calcular Fatorial”, o JavaScript captura o valor inserido e calcula o fatorial utilizando a função
calcularFatorial()
. - O resultado é exibido abaixo na página.
Calcular o fatorial de um número em JavaScript é uma ótima forma de praticar conceitos como loops, recursão e manipulação de entradas do usuário.
Neste post, você aprendeu duas maneiras de calcular o fatorial: usando loops e recursão. Ambas são eficientes, mas a escolha depende da preferência e do cenário de aplicação.
Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.
Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!
CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários