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 é:

fatorial

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

  1. O usuário insere um número no campo de entrada.

  2. Ao clicar no botão “Calcular Fatorial”, o JavaScript captura o valor inserido e calcula o fatorial utilizando a função calcularFatorial().

  3. 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.

QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

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:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *