PythonFunçõesavancado

Recursão com acumulador

Em código real, funções recursivas aparecem em problemas como percorrer árvores de arquivos ou calcular totais de dados aninhados. Sem um acumulador, cada chamada recursiva precisa esperar o retorno das anteriores para somar, o que gasta memória da pilha. Usar um parâmetro que carrega o resultado parcial evita isso e torna a lógica mais clara, especialmente em linguagens que otimizam chamadas de cauda.

O PROBLEMA

Crie somar_lista(lista, ac=0) recursiva para somar elementos.

EXEMPLO

somar_lista([1,2,3,4,5]) → 15

SOBRE O CONCEITO

A função somar_lista(lista, ac=0) usa recursão com acumulador: o parâmetro ac guarda a soma parcial. A cada chamada, somamos o primeiro elemento ao ac e passamos o restante da lista (lista[1:]) na recursão. O erro mais comum é não tratar a lista vazia: sem um if que verifique len(lista) == 0 e retorne ac, a recursão nunca termina, porque a lista nunca diminui e o Python lança RecursionError. Por isso, sempre estabeleça um caso base que retorne o acumulador quando a lista estiver vazia.

RESOLUÇÃO

Mais exercícios de Funções

PYF026D · DesafioSistema de validaçãoPYF029D · DesafioAnalisador de textoPYF006B · BásicoFunção booleanaPYF009B · BásicoChamar função dentro de função
Ver todos os exercícios de Python