Em uma oficina de programação, os estudantes precisam calcular o fatorial de um número inteiro positivo. Uma…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em uma oficina de programação, os estudantes precisam calcular o fatorial de um número inteiro positivo. Uma das soluções define o fatorial de n como n multiplicado pelo fatorial de n - 1, interrompendo o processo quando n chega a 1. Assim, a estrutura do algoritmo acompanha a definição matemática do problema. Outra solução utiliza um laço de repetição e uma variável acumuladora para realizar os mesmos cálculos. Considerando a situação apresentada, qual é a principal vantagem do uso da recursão nesse algoritmo?
- A) Executar os cálculos em menor tempo de processamento
- B) Eliminar a necessidade de um caso-base no algoritmo
- C) Representar o problema de forma próxima à definição matemática
- D) Garantir a ausência de estruturas de repetição no programa
- E) Utilizar menos memória durante todas as chamadas
✅ Resposta correta: alternativa C
Resolução passo a passo
- O enunciado descreve duas soluções para o fatorial. Na recursiva, fatorial de n é n multiplicado pelo fatorial de n - 1, e o processo para quando n chega a 1. Na iterativa, usa-se um laço e uma variável acumuladora.
- Pergunta-se qual é a principal vantagem da recursão nesse caso. O próprio enunciado indica que a estrutura do algoritmo acompanha a definição matemática do problema.
- Logo, a vantagem é representar o problema de forma próxima à definição matemática, alternativa C, que coincide com o gabarito oficial.
- A alternativa A está errada, pois a recursão não garante menor tempo de processamento; em geral, ela tem custo extra de chamadas de função.
- A alternativa B está errada, pois a recursão exige justamente um caso-base (n igual a 1) para interromper as chamadas.
- A alternativa D está errada, pois a solução recursiva dispensa laço de repetição, mas isso não é sua principal vantagem e não garante ausência de estruturas de repetição em geral.
- A alternativa E está errada, pois cada chamada recursiva ocupa espaço na pilha de execução, o que tende a usar mais memória, não menos.
💡 Dica: Relacione a estrutura recursiva com a definição matemática do fatorial.
Alternativa por alternativa
O aluno acha que a recursão é mais rápida por ser uma forma mais 'elegante' ou compacta de programar. Confunde clareza do código com desempenho.
Por que engana: O aluno pode confundir a representação mais próxima da definição matemática com vantagens de desempenho, como menor tempo ou menor uso de memória.
O aluno acredita que, por ser uma chamada que se repete, a recursão dispensa qualquer condição de parada. Desconhece que o caso-base é indispensável para evitar recursão infinita.
A função recursiva expressa o fatorial por meio de uma chamada para uma versão menor do próprio problema, até alcançar o caso-base. Essa estrutura acompanha diretamente a definição matemática e pode tornar a solução mais clara e organizada. Isso não significa, necessariamente, que o algoritmo seja mais rápido ou use menos memória.
O aluno entende que a recursão substitui toda repetição, e por isso a vê como a grande vantagem de eliminar estruturas de repetição. Ignora que a vantagem está na correspondência com a definição matemática.
O aluno pensa que, como a recursão não usa variável acumuladora, ela economiza memória. Esquece que cada chamada fica empilhada na memória até o retorno.
Raio-X da questão
Vantagem da recursão
avaliacao
Conceito de função recursiva · Definição matemática do fatorial
Revise como funções recursivas representam definições matemáticas e utilizam casos-base.
O aluno pode confundir a representação mais próxima da definição matemática com vantagens de desempenho, como menor tempo ou menor uso de memória.
ciencia_tecnologia
tomada_decisao
cientifico
Questões parecidas com resolução
- Em um programa, você precisa calcular o fatorial de um número usando recursão. Qual parte do algoritmo é crucial para…
- Utilizando a técnica de recursão, como você solucionaria um problema que requer o cálculo de um fatorial? Descreva o…
- Elabore um algoritmo que utilize recursão para calcular o fatorial de um número. Explique o conceito de recursão e sua…
- Descreva um algoritmo para calcular o fatorial de um número utilizando recursão.
- Uma equipe desenvolve uma central meteorológica para regiões remotas. O microcontrolador do equipamento possui apenas 1…
- Um algoritmo que calcula o fatorial pode ser feito de maneiras diferentes. Qual a importância de generalizar a soluçã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
