Questão FC331181
Analise o código Python 2.7 a seguir. def xpto (n1, n2): while n1 != n2: if (n1 < n2): n2 = n2 - n1 else: n1 = n1 - n2 return n1 print xpto(50,5) O valor exibido pelo comando print
Linguagens de Programação
FGV · 2021
Analise o código Python 2.7 a seguir.
def xpto (n1, n2):
while n1 != n2:
if (n1 < n2):
n2 = n2 - n1
else:
n1 = n1 - n2
return n1
print xpto(50,5)
O valor exibido pelo comando print é:
- 0
- 1
- 5
- 10
- 50
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A função xpto recebe n1=50 e n2=5 e entra no laço while que executa enquanto n1 != n2.
Dentro do laço há um if: como 50 > 5, a condição n1 < n2 é falsa e executa-se n1 = n1 - n2 repetidamente.
Isso gera a sequência: 50 → 45 → 40 → 35 → 30 → 25 → 20 → 15 → 10 → 5. Quando n1 atinge 5, passa a valer igual a n2, a condição do while deixa de ser verdadeira e o laço termina.
Em seguida a função faz o retorno de n1, que agora vale 5. Observação: esse procedimento é a versão por subtração do algoritmo de Euclides, portanto o valor retornado é o mdc(50,5)=\(5\).
Conteúdo do catálogo FC Concursos · Atualizado em