GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF08CO01Média⏱ curto

Ao projetar um algoritmo recursivo que recalcula repetidamente os mesmos subproblemas, qual técnica baseada em…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF08CO01

Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Ao projetar um algoritmo recursivo que recalcula repetidamente os mesmos subproblemas, qual técnica baseada em armazenar resultados anteriores reduz o tempo de execução?

  1. A) Repetição de chamadas sem modificar argumentos.
  2. B) Divisão de problemas em partes menores, sem armazenar resultados.
  3. C) Usar apenas recursão simples e esperar por resultados.
  4. D) Memoização: armazenar resultados em uma tabela (cache) e reutilizá-los
  5. E) Implementação de loops aninhados em vez de recursão.

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. O enunciado descreve um algoritmo recursivo que recalcula os mesmos subproblemas várias vezes, ou seja, há sobreposição de subproblemas e trabalho desperdiçado.
  2. A técnica que resolve esse desperdício é guardar o resultado de cada subproblema já calculado (em uma tabela ou cache) e, quando ele aparecer de novo, reutilizar o valor armazenado em vez de recalculá-lo. Esse procedimento chama-se memoização.
  3. Logo, a alternativa D está correta, pois descreve exatamente armazenar resultados em uma tabela (cache) e reutilizá-los.
  4. A alternativa A está errada, pois repetir chamadas sem modificar argumentos apenas repete o mesmo trabalho e não reduz o tempo.
  5. A alternativa B está errada, pois dividir o problema em partes menores é a própria essência da recursão, mas sem armazenar resultados o recálculo continua ocorrendo.
  6. A alternativa C está errada, pois a recursão simples é justamente o que causa o recálculo; esperar pelos resultados não os reaproveita.
  7. A alternativa E está errada, pois trocar recursão por loops aninhados não é a técnica que armazena resultados e não garante redução do tempo em geral.
  8. Conclusão: o gabarito oficial D está correto.

💡 Dica: Pense na técnica que armazena resultados de subproblemas.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno acredita que repetir chamadas idênticas já resolve o problema, sem perceber que as mesmas entradas geram o mesmo cálculo de novo.

B Erradaerro: Conceituala que mais engana

O aluno confunde a estratégia de dividir o problema (dividir e conquistar) com a otimização pedida, que exige guardar os resultados já obtidos.

Por que engana: O aluno pode confundir a técnica de memoização com a simples repetição de chamadas, não percebendo a importância de armazenar resultados para otimizar o tempo de execução.

C Erradaerro: Conceitual

O aluno supõe que a recursão simples, por si só, é a solução eficiente, sem notar que ela é justamente a origem do recálculo de subproblemas.

D Correta

Memoização evita recomputação gravando resultados de subproblemas em uma tabela (por exemplo, mapa/array), transformando muitas recursões exponenciais em custo polinomial.

E Erradaerro: Conceitual

O aluno associa eficiência apenas à troca de recursão por iteração, sem perceber que o ganho vem do armazenamento dos resultados, não da estrutura de repetição.

Raio-X da questão

Dificuldade Média
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 consolidacao
🎯 Conceito central

algoritmo recursivo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos recursivos · memoização

📚 Reveja

Revisar técnicas de otimização em algoritmos recursivos.

⚠️ Erro mais comum

O aluno pode confundir a técnica de memoização com a simples repetição de chamadas, não percebendo a importância de armazenar resultados para otimizar o tempo de execução.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Programação - Programação com listas e recursã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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.