Revisão de Recursão
---
id: 6723d1f0568292cd394d6fb6
title: Revisão de Recursão
challengeType: 31
dashedName: review-recursion
---
# --description--
- Recursão é um conceito de programação que permite chamar uma função repetidamente até que um caso base seja alcançado.
function findFactorial(n) {
if (n === 0) {
return 1;
}
return n * findFactorial(n - 1);
}
No exemplo acima, a função findFactorial é chamada recursivamente até que n alcance 0. Quando n é 0, o caso base é alcançado e a função retorna 1. A função então retorna o produto de n e o resultado da chamada recursiva para findFactorial(n - 1).
- Recursão permite que você lide com algo de profundidade desconhecida, como objetos/arrays profundamente aninhados ou uma árvore de arquivos.
- Uma pilha de chamadas é usada para acompanhar as chamadas de função em uma função recursiva. Cada vez que uma função é chamada, ela é adicionada à pilha de chamadas. Quando o caso base é alcançado, as chamadas de função são removidas da pilha.
- Você deve definir cuidadosamente o caso base, pois chamá-lo indefinidamente pode fazer seu código travar. Isso acontece porque a recursão continua acumulando cada vez mais chamadas de função até que o sistema fique sem memória.
- Recursões encontram suas aplicações na resolução de problemas matemáticos como fatorial e Fibonacci, percorrendo árvores e grafos, gerando permutações e combinações e muito mais.