FC ConcursosFC Concursos

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. 1
  2. 12
  3. 24
  4. 36
  5. 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

Continue aprendendo