Junior
Qual é a diferença entre realizar a mesma tarefa usando recursão e um ciclo?
sobes.tech IA
Resposta da IA
A recursão usa a chamada da própria função para resolver um problema, dividindo-o em tarefas menores até ao caso base. Enquanto isso, o ciclo repete um bloco de código um número determinado de vezes ou até que uma condição seja satisfeita.
| Característica | Recursão | Ciclo |
|---|---|---|
| Execução | Chamada de função | Iteração |
| Memória | Usa a pilha de chamadas | Usa variáveis de contador/condição |
| Legibilidade | Pode ser mais conciso para algumas tarefas | Geralmente mais direto |
| Desempenho | Pode ser mais lento devido aos custos de chamadas | Geralmente mais eficiente |
| Estouro de pilha | Risco de estouro em recursões profundas | Sem risco de estouro de pilha |
Exemplo em C# (fatorial):
Implementação recursiva:
// Cálculo recursivo do fatorial
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Caso base
}
return n * FactorialRecursive(n - 1); // Chamada recursiva
}
Implementação com ciclo:
// Cálculo do fatorial usando ciclo
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}