Gabarito disponível
Com relação a funções e procedimentos na linguagem JAVA, analise o programa abaixo desenvolvido no ambiente Netbeans 7.3:
public class Fibonacci {
static long f(int n) {
if (n < 2) {
return n;
} else {
return f(n - 1) + f(n - 2);
}
}
public static void main(String[] args) {
int i;
for (i = 0; i < 8; i++) { }
System.out.println (f(i));
}
}
Assinale a opção que apresenta o valor que será impresso pelo programa acima.
public class Fibonacci {
static long f(int n) {
if (n < 2) {
return n;
} else {
return f(n - 1) + f(n - 2);
}
}
public static void main(String[] args) {
int i;
for (i = 0; i < 8; i++) { }
System.out.println (f(i));
}
}
Assinale a opção que apresenta o valor que será impresso pelo programa acima.
Resolução comentada
Após o for vazio, i = 8; imprime f(8) = 21.
O for tem corpo vazio ({ }), então o println executa só uma vez, depois do laço, com i = 8. A sequência de Fibonacci é f(0)=0, f(1)=1, f(2)=1, f(3)=2, f(4)=3, f(5)=5, f(6)=8, f(7)=13, f(8)=21.
Análise das alternativas
18, 19, 20 e 22 não pertencem à sequência de Fibonacci. 13 seria f(7), mas aqui i vale 8.
Referência: Recursividade em Java; sequência de Fibonacci.
Resolução comentada do VaiConcursos.