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.
Aqui está um exemplo de uma função recursiva que calcula o fatorial de um número:
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.
# --assignment-- Revise os tópicos e conceitos de Recursion.