O fatorial de um número é um importante conceito matemático. Você pode usá-lo para realizar permutações e combinações, escrever expressões exponenciais e logarítmicas e calcular probabilidades.

Você o usa para encontrar o número de maneiras diferentes de criar um arranjo de assentos ou escolher camisetas para suas férias nas Maldivas. Mas como você pode calcular o fatorial de um número?

O que é o fatorial de um número?

O fatorial de um número positivo é o produto de todos os inteiros positivos menores ou iguais ao valor do próprio número. Um número seguido por um ponto de exclamação (!) denota o fatorial de um número. Você representa o fatorial de cinco como 5! e calcule como:

5! = 5 * 4 * 3 * 2 * 1 = 120

Outra forma de visualizar é:

5! = 5 * 4! onde 4! = 4 * 3!, 3! = 3 * 2! e assim por diante até obter 1! = 1 * 0! que é 1.

Você usará esse conceito para construir nosso programa fatorial usando um conceito popular chamado recursão.

O que é recursão?

A recursão é um processo no qual uma função chama a si mesma. Uma das principais vantagens desse processo é que ele divide um problema maior em partes menores. Isso torna o problema mais fácil de resolver.

instagram viewer

Você pode usar a recursão para resolver problemas apropriados em três etapas fáceis:

  1. Encontre o caso base: Se uma função sempre chama a si mesma, o processo será infinito. Para evitar que isso aconteça, defina um caso base que se torne o ponto de parada lógico para sua função. Por exemplo, em um programa fatorial, pare o cálculo em zero. Isso se torna o caso base para o problema.
  2. Encontre a relação entre o problema e os subproblemas: Divida o problema maior em um subproblema. Por exemplo, o problema é encontrar o fatorial de cinco. Suponha que você tenha a resposta do fatorial de quatro, ou seja, 24. Como você obterá o fatorial de cinco usando 24? Multiplicando o próprio cinco nele. Esta é a relação entre o problema e o subproblema.
  3. Generalize a relação encontrada no Passo 2: Agora que você tem a relação, generalize-a em termos de n. Assim, o fatorial de um número n é o produto de n e o fatorial de n-1.

Você pode usar esse conceito para encontre a soma de n números naturais, calcule GCD, LCM, a série de Fibonacci e verifique os números primos.

Pseudocódigo para a função fatorial usando recursão

Isso é como você usa recursão e escreva o pseudocódigo para construir seu programa em qualquer linguagem. Com linguagens diferentes, a sintaxe e a execução mudam, mas a lógica permanece intacta.

funçãoFacto(n)
Se n == 0 então // caso base
Retornar1
Retornar n * Fato da Chamada (n - 1) // relação generalizada

Programa Fatorial em C

C foi a primeira linguagem de programação independente de plataforma de alto nível. Ele tem uma sintaxe estrita, diferencia maiúsculas de minúsculas e executa o código com a velocidade mais rápida. É uma linguagem de programação procedural e, portanto, você declara qualquer função em cima da principal função. Veja como você pode construir o programa fatorial usando recursão na linguagem C:

Você pode encontrar todo o código-fonte do programa fatorial usando recursão em C, Java e Python neste Repositório GitHub.

  1. Importe o arquivo de cabeçalho de saída de entrada padrão para exibir a saída na tela.
    #incluir <stdio.h>
  2. Definir função facto e pegue inteiro n como argumento.
    intfacto(int n){
  3. Escreva o caso base da função usando o se declaração e verifique sua igualdade usando ==. Se n for igual a zero, retorna um.
     se (n == 0)
    retornar1;
  4. Escreva a equação generalizada e retorne o produto de n com uma chamada de função do subproblema n-1.
    retornar n * fato (n - 1);
    }
  5. Declare a função principal e inicialize uma variável do tipo inteiro para armazenar o número cujo fatorial você deseja encontrar.
    intprincipal(){
    int num = 5;
  6. Exiba o fatorial do número usando o printf() função. %d é o especificador de formato decimal. Use cada um dos especificadores de formato para substituí-lo pelo número cujo fatorial você deseja encontrar e obtenha o resultado chamando a função.
     printf("O fatorial de %d é %d", num, fato (num));
    retornar0;
    }

Programa fatorial em Java

Java é uma linguagem de programação compilada e independente de plataforma. Você armazena todo o código dentro de um aula e a execução começa a partir do principal função. É sensível a maiúsculas e minúsculas e a sintaxe estrita. O código é um pouco mais longo, mas mais rápido em comparação com o Python. Veja como você pode construir o programa fatorial usando recursão em Java:

  1. Defina a classe Principal.
    aulaPrincipal{
  2. Defina uma função estática com tipo de retorno int que aceita uma variável n do tipo inteiro. Você declarou um método estático como o método principal em Java também é declarado como estático. Além disso, você não pode chamar um método não estático de uma instância estática.
    estáticointfacto(int n){
  3. Escreva o caso base da função usando o se declaração e verifique sua igualdade usando ==. Se n for igual a zero, retorna um.
     se (n == 0)
    retornar1;
  4. Escreva a equação generalizada e retorne o produto de n com uma chamada de função do subproblema n-1.
    retornar n * fato (n - 1);
    }
  5. Declare a função principal em Java. Declare o modificador de acesso como público, para que possa ser acessado por todas as outras classes e métodos. Você declara a função principal como estático para que o compilador possa invocá-lo sem instanciar a classe. O tipo de retorno é vazio, e aceita argumentos do tipo Corda. Armazene o número cujo fatorial você deseja encontrar.
    públicoestáticovazioprincipal(String[] argumentos){
    int num = 5;
  6. Use o println() método, uma instância do PrintStream classe, definida no Sistema classe para exibir o fatorial do número.
     System.out.println("fatorial de " + num + " é " + fato (num));
    }
    }

Programa fatorial em Python

Escrever código em Python é super fácil e divertido. Como é uma linguagem interpretada independente de plataforma, você não precisa declarar o tipo de dados das variáveis. Você também evita ter que declarar classes e importar bibliotecas para um programa tão simples. O playground está pronto para você começar a codificar.

A sintaxe é mais fácil, com um tamanho de código pequeno, mas leva um pouco mais de tempo para executar do que as outras linguagens. Veja como você pode construir o programa fatorial usando recursão em Python:

  1. Defina a função fact que aceita como argumento n.
    deffacto(n):
  2. Escreva o caso base da função usando o se declaração e verifique sua igualdade usando ==. Se n for igual a zero, retorna um.
     se n == 0:
    retornar1
  3. Escreva a equação generalizada e retorne o produto de n com uma chamada de função do subproblema n-1.
    retornar n * fato (n-1)
  4. Armazene o número cujo fatorial você deseja encontrar e exiba-o usando a instrução print.
    num = 5;
    imprimir("fatorial de", num, "é", fato (num))

Existem muitas aplicações de recursão

A recursão é uma maneira eficaz de resolver problemas. É o ponto crucial da Inteligência Artificial e tem usos no mundo real em jogos de quebra-cabeça, como xadrez ou Sudoku.

Também é um método poderoso para classificar estruturas de dados, como árvore ou algoritmos de classificação, como classificação rápida e classificação por mesclagem. Você também pode usar a recursão em algoritmos de pesquisa como pesquisa binária, expressões matemáticas como a série de Fibonacci e muito mais.