Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Recursão | Alguns Tópicos Avançados
Funções em C++

Recursão

Deslize para mostrar o menu

Recursão em programação refere-se à técnica em que uma função chama a si mesma para resolver uma instância menor do mesmo problema. É uma forma poderosa e elegante de resolver problemas que podem ser divididos em subproblemas menores do mesmo tipo.

Funções recursivas geralmente consistem em dois componentes:

  • Caso Base: Define a condição de parada para a função recursiva. Quando o caso base é atingido, a função para de chamar a si mesma e retorna um valor específico. Isso é necessário para evitar recursão infinita.

  • Caso Recursivo: Define a lógica para dividir o problema em subproblemas menores e chamar a função recursivamente com entradas reduzidas. O caso recursivo permite que a função avance em direção ao caso base.

Note
Nota

O fatorial de um número n é definido da seguinte forma:

n! = n*(n-1)*(n-2)*..*2*1 = n*(n-1)!

main.cpp

main.cpp

12345678910111213141516171819
#include <iostream> // Function to calculate factorial int factorial(int n) { // Base case: factorial of 0 or 1 is 1 if (n == 0 || n == 1) return 1; // Recursive case: multiply n with factorial of (n-1) std::cout << "Recursive Case: " << n << " * factorial(" << n - 1 << ")" << std::endl; return n * factorial(n - 1); } int main() { // Call the function std::cout << factorial(5) << std::endl; }

Caso Base: O caso base ocorre quando a entrada n é igual a 0 ou 1. Nesse caso, o fatorial é definido como 1. O caso base garante que a recursão termine e evita recursão infinita.

Caso Recursivo: O caso recursivo é a lógica para calcular o fatorial de n quando n é maior que 1. Envolve chamar a função fatorial recursivamente com n - 1 como argumento e multiplicar o resultado por n. Isso reduz o problema para um subproblema menor ao calcular o fatorial de um número menor.

Chamada da função com argumento igual a 5. Veja o processo passo a passo:

  • factorial(5) chama factorial(4) e multiplica o resultado por 5.
  • factorial(4) chama factorial(3) e multiplica o resultado por 4.
  • factorial(3) chama factorial(2) e multiplica o resultado por 3.
  • factorial(2) chama factorial(1) e multiplica o resultado por 2.
  • factorial(1) é o caso base e retorna 1.
  • a multiplicação continua de volta na cadeia, resultando no fatorial final de 5, que é igual a 120.
question mark

Qual é a saída da função factorial() criada no capítulo para a entrada 3?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 4. Capítulo 3
some-alt