Uma função recursiva soma(lista): se lista vazia retorna 0; senão retorna primeiro + soma(resto). Aplicando…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Uma função recursiva soma(lista): se lista vazia retorna 0; senão retorna primeiro + soma(resto). Aplicando essa recursão em [2,5,3], qual é a sequência de chamadas e o resultado final?
- A) sum([2,5,3]) chama soma apenas uma vez e retorna 2.
- B) sum([2,5,3]) ? sum([5,3]) + 2 ? sum([3]) + 5 + 2 = 5
- C) sum([2,5,3]) ? 2 × sum([5,3]) ? 2 × 8 = 16
- D) sum([2,5,3]) ? 2+sum([5,3]) ? 2+5+sum([3]) ? 2+5+3+sum([]) = 10
- E) sum([2,5,3]) ? retorna sum([]) porque lista não está vazia, resultado 0.
✅ Resposta correta: alternativa D
Resolução passo a passo
- Entenda a regra. Se a lista está vazia, o resultado é 0 (caso base). Caso contrário, o resultado é o primeiro elemento somado à soma do resto da lista. Passo 2: Aplique a regra a [2,5,3]. O primeiro elemento é 2 e o resto é [5,3], então soma([2,5,3]) = 2 + soma([5,3]). Passo 3: Repita para [5,3]. O primeiro elemento é 5 e o resto é [3], então soma([5,3]) = 5 + soma([3]). Passo 4: Para [3], o primeiro elemento é 3 e o resto é [], então soma([3]) = 3 + soma([]). Passo 5: Como soma([]) = 0 pelo caso base, a cadeia fica 2 + 5 + 3 + 0 = 10. Passo 6: Por isso o resultado correto é 10, e a alternativa D mostra exatamente essa sequência de chamadas. Passo 7: Por que as outras estão erradas: A ignora o resto da lista e para no primeiro elemento; B inverte a acumulação e chega a um valor sem sentido; C usa multiplicação em vez de soma; E inverte a condição do caso base. Passo 8: Observação: as setas da sequência aparecem como interrogações no texto da questão, provavelmente por problema de codificação, mas o sentido da cadeia de chamadas é claro. Concordo com o gabarito oficial D.
💡 Dica: Trace a sequência de chamadas da função recursiva.
Alternativa por alternativa
Acredita que a função recebe apenas o primeiro elemento e retorna esse valor, sem fazer a chamada recursiva sobre o resto da lista.
Aplica a recursão de forma invertida e mistura as parcelas, chegando a um somatório sem sentido (5 + 2 = 5), o que indica que não acumula corretamente os valores das chamadas.
Confunde a operação da recursão, trocando a soma do primeiro elemento com o resto por uma multiplicação (2 × soma do resto).
Por que engana: Confundir a operação de soma com multiplicação, resultando em um valor incorreto ao aplicar a recursão.
Correto: descreve corretamente as chamadas recursivas até a lista vazia e o resultado 10.
Inverte a condição do caso base, achando que a lista não vazia deve retornar 0, quando na verdade é a lista vazia que retorna 0.
Raio-X da questão
função recursiva
avaliacao
função recursiva · soma de elementos
Revisar o conceito de funções recursivas e suas aplicações.
Confundir a operação de soma com multiplicação, resultando em um valor incorreto ao aplicar a recursão.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Ao criar uma função que utiliza recursão para somar todos os elementos de uma lista, qual é a base dessa função?
- A função abaixo soma uma lista dividindo o problema em uma parte menor a cada chamada: função somar(lista): se lista…
- Qual seria o resultado de um algoritmo que utiliza recursão para somar os elementos de uma lista de números?
- Um programador deseja criar uma função recursiva que retorne a soma dos elementos de uma lista. Como deve ser a…
- Desenvolva uma função recursiva que calcule a soma dos números em uma lista. Explique o funcionamento da função.
- Descreva como você poderia utilizar uma função recursiva para somar todos os elementos de uma lista de números inteiros.
🔎 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
