Matemática Múltipla Escolha

Observe a função print do código escrito em Python seguir: def foo(n): if n > 1: return n * foo(n-1) return n print(foo(4)) Qual o resultado impresso por essa função?

Observe a função print do código escrito em Python seguir:

def foo(n):
if n > 1:
return n * foo(n-1)
return n

print(foo(4))

Qual o resultado impresso por essa função?

  1. 4
  2. 16
  3. 24
  4. 20
  5. 32

Resolução completa

Explicação passo a passo

C
Alternativa C

Alternativa C

O código apresentado define uma função recursiva que calcula o fatorial de um número. Vamos analisar passo a passo como o Python executa a chamada foo(4).

Análise do Código

A função foo(n) verifica se n é maior que 1. Se for verdadeiro, ela chama a si mesma com o valor n-1 e multiplica o resultado por n. Caso contrário, retorna o próprio n.

Essa lógica corresponde exatamente à definição matemática do fatorial:
n! = n \times (n-1)!

Rastreamento da Execução

Para entender o resultado, precisamos seguir a ordem das chamadas recursivas:

  • Chamada inicial: foo(4)
  • Como $4 > 1$, retorna $4 \times \text{foo}(3)$
  • Segunda chamada: foo(3)
  • Como $3 > 1$, retorna $3 \times \text{foo}(2)$
  • Terceira chamada: foo(2)
  • Como $2 > 1$, retorna $2 \times \text{foo}(1)$
  • Quarta chamada: foo(1)
  • A condição $1 > 1$ é falsa.
  • Retorna $1$ (caso base da recursão).

Retorno dos Valores

Agora substituímos os valores de baixo para cima (desenrolar a pilha de execução):

ChamadaCálculoResultado Parcial
foo(1)Retorno direto$1$
foo(2)$2 \times 1$$2$
foo(3)$3 \times 2$$6$
foo(4)$4 \times 6$$24$

Portanto, o comando print(foo(4)) exibirá o valor 24.

Conclusão

A alternativa correta é a C, pois a função implementa o cálculo do fatorial de 4 ($4! = 24$).

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Matemática

Ver mais Matemática resolvidas

Tem outra questão de Matemática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.