Questão FC331182
Observe o código Python v2.7. def F (a, b): while a != b: if a > b: a = a - b elif b > a: b -= a return a Assinale o valor retornado para F (48,36).
Linguagens de Programação
FGV · 2021
Observe o código Python v2.7.
def F (a, b):
while a != b:
if a > b:
a = a - b
elif b > a:
b -= a
return a
Assinale o valor retornado para F (48,36).
- 1
- 12
- 24
- 36
- 48
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A função implementa o algoritmo de subtração do MDC: repete o laço while até que os dois números sejam iguais e então faz return desse valor.
Para F(48,36), na 1ª iteração vale 48 > 36, então entra o if e atualiza \(a = 48 - 36 = 12\).
Agora temos \(a=12\) e \(b=36\). Como ainda são diferentes, continua o laço; na 2ª iteração 36 > 12, cai no elif e faz \(b = 36 - 12 = 24\).
Terceira iteração: \(a=12\), \(b=24\); novamente \(b > a\), atualiza \(b = 24 - 12 = 12\).
Agora \(a = b = 12\), a condição do while falha e a função retorna \(12\). Portanto, o valor retornado é 12.
Conteúdo do catálogo FC Concursos · Atualizado em