PythonFunçõesintermediario

Fatorial recursivo

Recursão é uma técnica onde uma função chama a si mesma para resolver subproblemas menores. Em código real, ela aparece em tarefas como percorrer árvores de diretórios, processar estruturas aninhadas como JSONs profundos, ou implementar algoritmos de busca como DFS. Dominar recursão é essencial porque muitos problemas encaixam naturalmente nesse padrão — tentar resolvê-los com loops pode gerar código mais complexo e menos legível.

O PROBLEMA

Crie função recursiva fatorial(n) sem loops.

EXEMPLO

fatorial(5) → 120
fatorial(0) → 1

SOBRE O CONCEITO

A função fatorial(n) deve retornar o produto de todos os inteiros de 1 até n, e a definição recursiva clássica é: se n == 0, retorne 1 (caso base); senão, retorne n * fatorial(n-1). O erro mais comum é esquecer o caso base — sem ele, a função nunca para de chamar a si mesma, resultando em recursão infinita e estouro de pilha (RecursionError). É obrigatório tratar n == 0 explicitamente no código, pois do contrário a condição de parada nunca é atingida. Como loops são proibidos, a recursão é o único mecanismo de repetição disponível. Lembre-se de que fatorial(0) deve retornar 1 para que a recursão funcione corretamente.

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