Analise a seguinte função em Python que usa recursão: def soma(n): if n == 0: return 0 else: return n +…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Analise a seguinte função em Python que usa recursão: def soma(n): if n == 0: return 0 else: return n + soma(n-1). Qual é seu valor para n = 5?
- A) 10
- B) 15
- C) 20
- D) 5
- E) 0
✅ Resposta correta: alternativa B
Resolução passo a passo
- A função soma(n) retorna 0 quando n é 0; caso contrário, retorna n somado ao resultado de soma(n-1).
- Calculando soma(5) = 5 + soma(4).
- soma(4) = 4 + soma(3), então soma(5) = 5 + 4 + soma(3).
- soma(3) = 3 + soma(2), soma(2) = 2 + soma(1), soma(1) = 1 + soma(0).
- soma(0) = 0, logo soma(1) = 1, soma(2) = 3, soma(3) = 6, soma(4) = 10 e soma(5) = 15.
- Assim, o valor é 15, que é a soma dos inteiros de 1 a 5 (5+4+3+2+1).
- A alternativa A (10) está errada, pois corresponde a soma(4), não a soma(5).
- A alternativa C (20) está errada, pois não corresponde a nenhuma soma parcial dos termos da recursão.
- A alternativa D (5) está errada, pois é apenas o valor de n, ignorando as chamadas recursivas.
- A alternativa E (0) está errada, pois é o caso base, que só ocorre quando n é 0.
- Conclusão: o gabarito oficial B está correto.
💡 Dica: Calcule a soma recursivamente para n = 5.
Alternativa por alternativa
O aluno provavelmente contou apenas até o termo 4, somando 4+3+2+1, ou seja, calculou soma(4) em vez de soma(5).
Por que engana: Confundir a soma acumulativa da recursao com multiplicacao ou nao entender a condicao base da funcao recursiva.
A soma de 5+4+3+2+1+0 resulta em 15.
O aluno possivelmente somou valores de forma arbitrária, como 5+4+3+2+6, ou dobrou um resultado parcial sem seguir a regem da recursão.
O aluno acreditou que a função simplesmente retorna o próprio valor de n, ignorando que cada chamada soma n às chamadas seguintes.
O aluno confundiu o caso base (n == 0 retorna 0) com o resultado final, achando que a função sempre retorna 0.
Raio-X da questão
função recursiva
avaliacao
funcoes recursivas basicas · operacoes aritmeticas simples
Revisar conceitos de recursão e funções em Python.
Confundir a soma acumulativa da recursao com multiplicacao ou nao entender a condicao base da funcao recursiva.
pensamento_critico
cientifico
Questões parecidas com resolução
- Para inscrever estudantes no clube de leitura, a biblioteca da escola usa um formulário digital. O formulário solicita…
- Em uma planilha com várias turmas, uma mesma fórmula foi inserida na primeira linha e copiada para as demais para manter…
- Uma turma quer registrar em ordem as etapas para calcular a média das notas em um programa educacional. — Que recurso de…
- Em uma atividade de programação, o estudante percebe que vai repetir a mesma conta várias vezes para diferentes valores…
- No terminal de empréstimo de bicicletas de um parque urbano, cada devolução é registrada em um painel de leitura. O…
- Em uma frase, defina o que é um algoritmo em computação.
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
