Recursão C++
Recursão C++
Neste tutorial, aprenderemos sobre a função recursiva em C++ e como funciona com a ajuda de exemplos.
Uma função que chama a si mesma é conhecida como função recursiva. E, esta técnica é conhecida como recursão.
Trabalho de recursão em C++
void recurse()
{
... .. ...
recurse();
... .. ...
}
int main()
{
... .. ...
recurse();
... .. ...
}
A figura abaixo mostra como a recursão funciona chamando a si mesma repetidamente.
![](https://www.mfgrobots.com/article/uploadfiles/202112/2021122116192091.png)
A recursão continua até que alguma condição seja atendida.
Para evitar a recursão infinita, a instrução if...else (ou abordagem semelhante) pode ser usada onde uma ramificação faz a chamada recursiva e a outra não.
Exemplo 1:fatorial de um número usando recursão
// Factorial of n = 1*2*3*...*n
#include <iostream>
using namespace std;
int factorial(int);
int main() {
int n, result;
cout << "Enter a non-negative number: ";
cin >> n;
result = factorial(n);
cout << "Factorial of " << n << " = " << result;
return 0;
}
int factorial(int n) {
if (n > 1) {
return n * factorial(n - 1);
} else {
return 1;
}
}
Saída
Enter a non-negative number: 4 Factorial of 4 = 24
Trabalho do Programa Fatorial
![](https://www.mfgrobots.com/article/uploadfiles/202112/2021122116192062.png)
Como podemos ver, o
factorial()
função está chamando a si mesma. No entanto, durante cada chamada, diminuímos o valor de n por 1
. Quando n é menor que 1
, o factorial()
em última análise, a função retorna a saída. Vantagens e desvantagens da recursão
Abaixo estão os prós e contras de usar recursão em C++.
Vantagens da recursão C++
- Isso torna nosso código mais curto e mais limpo.
- A recursão é necessária em problemas relacionados a estruturas de dados e algoritmos avançados, como Graph e Tree Traversal.
Desvantagens da Recursão C++
- É preciso muito espaço de pilha em comparação com um programa iterativo.
- Usa mais tempo do processador.
- Pode ser mais difícil depurar em comparação com um programa iterativo equivalente.
Linguagem C