GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF69CO02Média⏱ medio

Qual alternativa representa uma função recursiva correta que calcula o fatorial de um número?

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

Qual alternativa representa uma função recursiva correta que calcula o fatorial de um número?

  1. A) def fatorial(n): return n * fatorial(n - 1) if n > 1 else 1
  2. B) def fatorial(n): return n + fatorial(n - 1) if n > 1 else 1
  3. C) def fatorial(n): return fatorial(n - 1) if n > 1 else 1
  4. D) def fatorial(n): return n * fatorial(n + 1) if n > 1 else 1
  5. E) def fatorial(n): return 1 if n == 0 else n * fatorial(n - 1)

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. O fatorial de n é o produto n*(n-1)*...*2*1, com 0! = 1. Uma função recursiva expressa isso como fatorial(n) = n * fatorial(n-1), com um caso base que interrompe a recursão quando n = 0 (ou n = 1). Passo 2: Resolvendo por conta própria, a alternativa E está correta: se n == 0 retorna 1 (caso base); senão retorna n * fatorial(n-1), que reduz n a cada chamada até chegar ao caso base. Para n = 4, o cálculo é 4*3*2*1*1 = 24. Passo 3: A alternativa A também calcula corretamente o fatorial para n >= 0, pois para n <= 1 retorna 1 e, para n > 1, usa a mesma recorrência; por isso a questão tem duas alternativas válidas, e o gabarito E está certo, mas a A também está. Passo 4: A alternativa B está errada porque usa soma (n + fatorial(n-1)) no lugar de produto. A alternativa C está errada porque nunca multiplica por n, retornando apenas fatorial(n-1), o que dá resultado errado (por exemplo, para n = 3 retorna 1 em vez de 6). A alternativa D está errada porque chama fatorial(n+1), afastando-se do caso base, o que gera recursão infinita.

💡 Dica: Analise as opções e verifique a definição de fatorial.

Alternativa por alternativa

A Erradaerro: Outroa que mais engana

O aluno pode achar que a versão com caso base 'n > 1 else 1' está errada por não tratar n = 0 explicitamente. Na verdade, para n = 0 ela também retorna 1, então a alternativa é válida, e o erro está em considerá-la incorreta.

Por que engana: Confundir a operacao correta na recursao, usando soma ou incremento errado, ou nao definir caso base adequadamente.

B Erradaerro: Conceitual

O aluno troca a operação de multiplicação pela de soma no passo recursivo, achando que o fatorial é a soma de n com os fatoriais menores.

C Erradaerro: Conceitual

O aluno acredita que basta reduzir n até o caso base, sem acumular produto, esquecendo que o fatorial depende de multiplicar n pelo valor da chamada anterior.

D Erradaerro: Procedimental

O aluno inverte o sentido da recursão, chamando fatorial(n + 1) em vez de fatorial(n - 1), o que faz n crescer e nunca alcançar o caso base, gerando recursão infinita.

E Correta

Fatorial de zero é 1, mas a condição deve ser ajustada.

Raio-X da questão

Dificuldade Média
Bloom Aplicar
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

função recursiva

📌 Objetivo

avaliacao

🧱 Pré-requisitos

funcoes recursivas basicas · operacoes matematicas basicas

📚 Reveja

Revisar a definição e implementação de funções recursivas.

⚠️ Erro mais comum

Confundir a operacao correta na recursao, usando soma ou incremento errado, ou nao definir caso base adequadamente.

🌎 Tema transversal

ciencia_tecnologia

🤝 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.