SóProvas


ID
1561702
Banca
Marinha
Órgão
PMS
Ano
2013
Provas
Disciplina
Programação
Assuntos

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.

Alternativas
Comentários
  • O gabarito é a letra D.

     

    Da forma como está escrito, o programa na verdade irá imprimir os fibonaccis de 0 até 7. Logo, não será impresso um único valor, mas 8 valores em sequência. Acho que faltou informar qual fibonacci específico a questão se referia. 

     

    f(0) = 0
    f(1) = 1
    f(2) = f(1) + f(0) = 1 + 0 = 1
    f(3) = f(2) + f(1) = 1 + 1 = 2
    f(4) = f(3) + f(2) = 2 + 1 = 3
    f(5) = f(4) + f(3) = 3 + 2 = 5
    f(6) = f(5) + f(4) = 5 + 3 = 8
    f(7) = f(6) + f(5) = 8 + 5 = 13

  • Lucas, o for está vazio, por causo do { }, logo apenas chega no valor de i=8 sem fazer nada, pois o System.out.println (f (i)) ; está fora do for.

    No seu calculo faltou o f(8) = f(7) + f(6) = 13+ 8 = 21

    Chegando a resposta da letra D