Metodo System.currentTimeMillis();

Como usar o metodo System.currentTimeMillis();
para calcular o numero de chamadas recursivas no codigo fibonacci abaixo:

  1. public class FibonacciCalculator {
    2. public long fibonacci( long number ) {
    3. if ( ( number == 0 ) || ( number == 1 ) ) // casos básicos
    4. return number;
    5. else // passo de recursão
    6. return fibonacci( number - 1 ) + fibonacci( number - 2 );
    7. } // fim do método fibonacci
    8. public void displayFibonacci() {
    9. for ( int counter = 0; counter <= 10; counter++) {
  2.                 System.out.printf( &quot;Fibonacci of %d is: %d\n&quot;, counter, fibonacci( counter ) );  
    
  3.             }  
    
  4.     } // fim do método displayFibonacci  
    
  5. } // fim da classe FibonacciCalculator

Esse método não calcula o número de chamadas e sim o tempo transcorrido. Para calcular o número de chamadas, crie uma variável estática e a incremente na entrada do método “fibonacci”.

e como eu resolvo este problema o codigo que ele se refere è o postado acima.

Aprimore o programa de Fibonacci (apresentado no material da aula) para que ele calcule a quantidade aproximada de tempo necessário para efetuar o cálculo e número de chamadas feitas para o método recursivo. Para este fim, chame o método static System.currentTimeMillis, que não aceita argumento e retorna a hora atual do computador em milissegundos. Chame esse método duas vezes ? uma vez antes da chamada a fibonacci e uma vez depois da chamada a fibonacci. Salve cada um desses valores à classe FibonacciCalculator e utilize essa variável para determinar o número de chamadas feitas para o método fibonacci. Exiba os resultados.

long t = System.currentTimeMillis();
... coisa que demora X milissegundos ...
t = System.currentTimeMillis() - t; // agora t conterá o tempo transcorrido em milissegundos.