GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF69CO02Difícil⏱ medio

Analise o código a seguir: def fatorial(n): return 1 if n==0 else n * fatorial(n-1). Qual o resultado de…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO02

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 o código a seguir: def fatorial(n): return 1 if n==0 else n * fatorial(n-1). Qual o resultado de fatorial(5)?

  1. A) 120
  2. B) 60
  3. C) 24
  4. D) 1
  5. E) 5

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. A função fatorial(n) retorna 1 quando n é 0 e, caso contrário, retorna n multiplicado por fatorial(n-1), ou seja, uma chamada recursiva que reduz n em uma unidade a cada passo.
  2. Para calcular fatorial(5), temos 5 * fatorial(4).
  3. Expandindo as chamadas: 5 * 4 * fatorial(3), depois 5 * 4 * 3 * fatorial(2), depois 5 * 4 * 3 * 2 * fatorial(1), e por fim 5 * 4 * 3 * 2 * 1 * fatorial(0).
  4. Como fatorial(0) vale 1, o resultado é 5 * 4 * 3 * 2 * 1 * 1 = 120.
  5. Portanto a alternativa correta é A, que coincide com o gabarito oficial. A alternativa B (60) seria o resultado de omitir um fator ou calcular 5 * 4 * 3, a alternativa C (24) corresponde a 4!, a alternativa D (1) é o caso base aplicado diretamente, e a alternativa E (5) é apenas o valor de entrada, sem a multiplicação recursiva.

💡 Dica: Calcule o fatorial de 5 utilizando a definição recursiva.

Alternativa por alternativa

A Correta

5! = 5 * 4 * 3 * 2 * 1 = 120.

B Erradaerro: Procedimentala que mais engana

O aluno provavelmente interrompeu a multiplicação antes do fim, por exemplo calculando 5 * 4 * 3 e parando, ou perdeu um dos fatores ao expandir a recursão.

Por que engana: Confundir a funcao recursiva com uma iterativa, ou nao entender a condicao base, resultando em calculos incorretos do fatorial.

C Erradaerro: Procedimental

O aluno provavelmente calculou 4! em vez de 5!, ou seja, aplicou a recursão até 4 sem incluir o fator 5 inicial.

D Erradaerro: Conceitual

O aluno confundiu o caso base da recursão (retorna 1 quando n é 0) com o resultado final, achando que a função devolve 1 para qualquer entrada.

E Erradaerro: Interpretação

O aluno acreditou que a função apenas devolve o próprio argumento, ignorando a multiplicação n * fatorial(n-1) presente no código.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
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✍️ calculativa🧩 consolidacao
🎯 Conceito central

fatorial recursivo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

recursao em funcoes · operacoes multiplicativas

📚 Reveja

Revisar a definição e cálculo do fatorial.

⚠️ Erro mais comum

Confundir a funcao recursiva com uma iterativa, ou nao entender a condicao base, resultando em calculos incorretos do fatorial.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Programação - Linguagem de programaçã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.