Questão nº 55

Questão de Segurança da Informação · FGV DPGE-RJ 2014 (nº 55)

FGV2014Técnico Superior Especializado em Segurança da InformaçãoSegurança da Informação
Gabarito: Cver comentário ↓

Seja a função recursiva f definida como

```
f(a,b)
se b = 0 então
retorna a
senão
retorna f(b, a MOD b)
```

onde x MOD y é o resto da divisão de x por y. O valor de f (30, 21) é

Resposta comentada

Gabarito Alternativa C

Recursão é quando uma função chama a si mesma para resolver um problema, dividindo-o em partes menores até chegar a um caso básico que pode ser resolvido diretamente. O Algoritmo de Euclides, implementado por essa função, é um método recursivo para encontrar o Máximo Divisor Comum (MDC) de dois números, ou seja, o maior número que divide ambos sem deixar resto.

(A) Incorreta: O valor 0 é o segundo argumento na condição de parada (`b = 0`), mas a função retorna o primeiro argumento (`a`) nesse caso, não 0.
(B) Incorreta: O MDC de 30 e 21 não é 1, pois ambos são divisíveis por 3.
(C) Correta: O traçado da função `f(30, 21)` é: `f(30, 21)` -> `f(21, 30 MOD 21)` = `f(21, 9)` -> `f(9, 21 MOD 9)` = `f(9, 3)` -> `f(3, 9 MOD 3)` = `f(3, 0)`. Como `b=0`, a função retorna `a`, que é 3. Esta função calcula o Máximo Divisor Comum (MDC) dos dois números.
(D) Incorreta: O número 7 não é um divisor comum de 30 e 21.
(E) Incorreta: O valor 9 é o resto da primeira divisão (`30 MOD 21`), mas a função continua recursivamente até que o segundo argumento seja 0. Armadilha: O aluno pode parar o cálculo prematuramente, confundindo o resultado de uma etapa intermediária com o resultado final da função.

Fonte: FGV DPGE-RJ 2014 Técnico Superior Especializado em Segurança da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho