Avatar ·

Como implementar recursão em C++?

Olá a todos! Sou novo em C++ e estou tentando entender recursão. Escrevi uma função simples para calcular fatorial, mas ela não funciona corretamente. Aqui está o código: ```cpp #include using namespace std; int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } } int main() { int num = 5; cout << "Fatorial " << num << " = " << factorial(num) << endl; return 0; } ``` Espero obter 120 para o número 5, mas às vezes o programa trava ou retorna valores estranhos. Tentei adicionar uma verificação para números negativos, mas não ajudou. Também li sobre stack overflow, mas não tenho certeza de como evitá-lo. Talvez o problema seja que não estou usando o caso base corretamente? Ou preciso fazer algo com o tipo de retorno? Quero entender como organizar a recursão corretamente para que funcione de forma estável para números grandes (por exemplo, para 20). Ficarei grato por uma explicação dos princípios básicos e possíveis