Questão
ID 67594Disciplina: Tecnologia da Informação
Assuntos: Conceitos e Propriedades das Linguagens de Programação, Python
Ano: 2025 Banca: PERFIL - ENADE Órgão: Quarto Simulado Pnd
Um professor de programação está ensinando sobre recursão e quer que seus alunos compreendam o conceito de 'caso base'. Ele explica: "Toda função recursiva precisa de duas partes: o **passo recursivo**, onde a função chama a si mesma com um problema menor, e o **caso base**, que é uma condição que para a recursão. Sem um caso base, a função chamaria a si mesma indefinidamente, levando a um erro de 'estouro da pilha de chamadas' (stack overflow). O caso base é a solução para o 'menor problema possível', que pode ser resolvida diretamente sem mais recursão." Para a atividade prática, ele apresenta uma função recursiva em Python que deveria calcular a soma dos números de 1 até `n`, mas que está com um bug: falta o caso base.
Função com bug: `def soma_recursiva(n): return n + soma_recursiva(n - 1)`
Ele pede aos alunos para identificarem o problema e corrigirem o código, adicionando um caso base apropriado.
Qual das seguintes opções corrige o código, adicionando um caso base que faz a função funcionar corretamente?