Questão nº 28
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 28)
FGV2024Técnico de Nível Superior - Analista de SistemasTecnologia da Informação
Gabarito: Aver comentário ↓
Considere a seguinte função na linguagem Java:
public static int funcao(int x, int y) {
if (y == 0)
return x;
else
return funcao(y, x % y);
}
O retorno da chamada funcao(49, 72) é:
- A1; (alternativa correta)
- B2;
- C3;
- D7;
- E9.
Resposta comentada
Gabarito Alternativa A
A função funcao calcula o Máximo Divisor Comum (MDC) entre dois números inteiros usando o Algoritmo de Euclides. O MDC é o maior número que divide ambos os inteiros sem deixar resto.
- (A) Correta: O resultado da chamada
funcao(49, 72)é 1.funcao(49, 72):y(72) não é 0. Chamafuncao(72, 49 % 72).49 % 72é 49.funcao(72, 49):y(49) não é 0. Chamafuncao(49, 72 % 49).72 % 49é 23.funcao(49, 23):y(23) não é 0. Chamafuncao(23, 49 % 23).49 % 23é 3.funcao(23, 3):y(3) não é 0. Chamafuncao(3, 23 % 3).23 % 3é 2.funcao(3, 2):y(2) não é 0. Chamafuncao(2, 3 % 2).3 % 2é 1.funcao(2, 1):y(1) não é 0. Chamafuncao(1, 2 % 1).2 % 1é 0.funcao(1, 0):y(0) é 0. Retornax, que é 1.
- (B) Incorreta: O valor 2 aparece como um resto intermediário (
23 % 3), mas não é o MDC final. - (C) Incorreta: O valor 3 aparece como um resto intermediário (
49 % 23) e se torna um argumento em uma chamada recursiva, mas a função continua até o resto ser 0. Esta é uma armadilha comum para quem não segue a recursão até o fim. - (D) Incorreta: 7 é um divisor de 49 (49 = 7 * 7), mas não é um divisor de 72 (72 / 7 = 10 com resto 2). Para ser o MDC, deve dividir ambos os números.
- (E) Incorreta: 9 é um divisor de 72 (72 = 8 * 9), mas não é um divisor de 49 (49 / 9 = 5 com resto 4). Para ser o MDC, deve dividir ambos os números.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Analista de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.