Sobes.tech
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;
}