Computação Múltipla Escolha

Analise o código Python abaixo: Qual será a saída do snippet?

Analise o código Python abaixo:

def fun(x, y):
    if x == y:
        return x
    else:
        return fun(x, y-1)

print(fun(0, 3))```

Qual será a saída do snippet?
  1. O snippet causará um erro de tempo de execução
  2. 2
  3. 1
  4. 0

Resolução completa

Explicação passo a passo

D
Alternativa D

Alternativa D - O snippet imprimirá o valor 0.

Análise do Código

Este exercício testa o entendimento sobre recursividade em Python. A função fun(x, y) chama a si mesma enquanto a condição inicial não for atendida.

Passo a Passo da Execução

Vamos simular a chamada print(fun(0, 3)):

  1. Primeira Chamada: fun(0, 3)
  • Verifica-se se $x == y$ ($0 == 3$). É Falso.
  • Entra no else e chama fun(0, 3-1) $\rightarrow$ fun(0, 2).
  1. Segunda Chamada: fun(0, 2)
  • Verifica-se se $x == y$ ($0 == 2$). É Falso.
  • Entra no else e chama fun(0, 2-1) $\rightarrow$ fun(0, 1).
  1. Terceira Chamada: fun(0, 1)
  • Verifica-se se $x == y$ ($0 == 1$). É Falso.
  • Entra no else e chama fun(0, 1-1) $\rightarrow$ fun(0, 0).
  1. Quarta Chamada (Caso Base): fun(0, 0)
  • Verifica-se se $x == y$ ($0 == 0$). É Verdadeiro.
  • A função retorna o valor de $x$, que é 0.

Conclusão

O valor retornado propaga-se de volta por todas as chamadas anteriores até chegar ao comando print. Como o valor final retornado é 0, a saída será 0.

EstadoxyAção
Início03Recursão (y-1)
Passo 102Recursão (y-1)
Passo 201Recursão (y-1)
Passo 300Retorna 0

Portanto, a alternativa correta é a que indica o valor 0.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

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