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?
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?
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.