Em um programa, você precisa calcular o fatorial de um número usando recursão. Qual parte do algoritmo é…
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 um programa, você precisa calcular o fatorial de um número usando recursão. Qual parte do algoritmo é crucial para evitar loops infinitos?
- A) Valor inicial
- B) Condição de parada
- C) Variáveis globais
- D) Saídas do programa
- E) Parâmetros da função
✅ Resposta correta: alternativa B
Resolução passo a passo
- Na recursão, uma função chama a si mesma com argumentos cada vez menores ou mais próximos de um estado final. Sem um ponto em que a chamada deixa de acontecer, a função nunca termina e gera um loop infinito (na prática, estouro de pilha).
- No cálculo do fatorial, por exemplo, n! = n * (n-1)!, com a regra de que 0! = 1. A condição de parada é justamente o caso base (se n = 0, retorne 1), que interrompe as chamadas recursivas.
- Portanto, a parte crucial para evitar loops infinitos é a condição de parada, alternativa B, que é também o gabarito oficial.
- Por que as outras estão erradas: A) o valor inicial é um dado de entrada e não impede a repetição das chamadas; C) variáveis globais podem até ser usadas, mas não garantem o término da recursão; D) as saídas do programa são resultados produzidos e não controlam as chamadas; E) os parâmetros da função transportam os dados de cada chamada, mas sem uma condição de parada eles não evitam a recursão infinita.
💡 Dica: Identifique a condição de parada da recursão.
Alternativa por alternativa
O aluno pode imaginar que basta definir um valor inicial correto para a função não se repetir indefinidamente, confundindo o ponto de partida com o critério de término.
Por que engana: Confundir a condicao de parada com outras partes do algoritmo, levando a loops infinitos.
A condição de parada limita a profundidade da recursão.
O aluno pode supor que guardar o estado em variáveis globais controla o fluxo das chamadas e, assim, impede o loop, quando na verdade isso não garante o término da recursão.
O aluno pode associar o controle do programa às saídas (resultados impressos ou retornados), sem perceber que elas são consequência do cálculo e não o que interrompe as chamadas.
O aluno pode achar que, por os parâmetros mudarem a cada chamada, eles sozinhos já encerram a recursão, esquecendo que é preciso um caso base explícito para parar.
Raio-X da questão
recursão e fatorial
avaliacao
recursao basica · conceito de funcao
Revisar o conceito de recursão e suas condições de parada.
Confundir a condicao de parada com outras partes do algoritmo, levando a loops infinitos.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em uma oficina de programação, os estudantes precisam calcular o fatorial de um número inteiro positivo. Uma das…
- Descreva um algoritmo para calcular o fatorial de um número utilizando recursão.
- 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…
- Em uma função recursiva, qual é o elemento crucial para evitar um loop infinito?
- Qual das seguintes alternativas é um exemplo de recursão em uma função que calcula o fatorial de um número?
🔎 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
