Pular para o conteúdo

Diretoria de Ensino da Marinha · Marinha do Brasil 2013

Questão 4 — Programação: Java — Recursividade

Programação Java — Recursividade

Diretoria de Ensino da Marinha 2013 Superior

Marinha do Brasil · Professor do Magistério Superior — Tecnologia da Informação · Caderno Amarela

Gabarito disponível

Com relação à construção de algoritmos na linguagem JAVA, analise o programa abaixo desenvolvido no ambiente Netbeans 7.3:

public class P1 {
public static void main(String[] args) {
P1 t = new P1();
t.d(19);
}
public static long f(long n) {
if (n <=1) {
return 1;
}
else {return n * f (n-1);
}
}
public void d(long n) {
for (int t=0; t <= n; t++ ) {
System.out.printf("%d = %d\n", t, f(t));
}
}
}

Dentre as opções abaixo, qual apresenta o valor da variável "t" quando f(t) = 24?
Selecione uma alternativa

Resolução comentada

f(t) é o fatorial de t, e 4! = 24, logo t = 4.

A função f calcula o fatorial: f(0)=f(1)=1, f(2)=2, f(3)=6, f(4)=24. Portanto, f(t)=24 quando t=4.

Análise das alternativas

B, C, D e E: 6, 8, 12 e 14 dariam fatoriais muito maiores (720, 40320 e assim por diante), diferentes de 24.

Referência: Recursividade: fatorial em Java.

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: A

Fonte: Gabarito preliminar: Gabarito CP-PMS/2013 — página 11