Questão 79 · Informática: Programação e algoritmos
Analise a função a seguir, descrita em pseudocódigo. function f(n) begin if n <= 0 then return 1 else return n * f(n-2) end; O comando print f(10) exibe
- A) 0.
- B) 1.
- C) 80.
- D) 1920.
- E) 3840.
Marque a alternativa correta:
Gabarito: E
Gabarito definitivo divulgado pela banca FGV (DPE/MT 2015).
Comentário
Gabarito: E.
A função f(n) retorna 1 quando n é menor ou igual a 0; caso contrário, retorna n × f(n - 2). Para f(10), o cálculo desce de 2 em 2 até chegar a 0:
f(10) = 10 × f(8) = 10 × 8 × f(6) = 10 × 8 × 6 × f(4) = 10 × 8 × 6 × 4 × f(2) = 10 × 8 × 6 × 4 × 2 × f(0) = 10 × 8 × 6 × 4 × 2 × 1 = 3840
Por isso, a alternativa E é a correta.
Por que as outras estão erradas:
- (A) 0 não é produzido: a função nunca multiplica por zero, pois os fatores são 10, 8, 6, 4 e 2.
- (B) 1 é o valor do caso base, e não o resultado de f(10).
- (C) 80 é o produto parcial 10 × 8, interrompido antes de chegar ao caso base.
- (D) 1920 é o produto 10 × 8 × 6 × 4, que ainda não inclui o fator 2.
Dica: em funções recursivas, escreva as chamadas até o caso base e multiplique de volta.
Fundamentos: recursão em pseudocódigo · caso base de funções recursivas · multiplicação em cadeia
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV DPE/MT 2015 (Analista de Sistemas), questão 79, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.