Recursion rapida de fibonacci

Estoy tratando de recordar un algoritmo en la recursión de Fibonacci. El seguimiento:

public int fibonacci(int n)  {
  if(n == 0)
    return 0;
  else if(n == 1)
    return 1;
  else
    return fibonacci(n - 1) + fibonacci(n - 2);
}

esno Lo que busco porque es codicioso. Esto crecerá exponencialmente (solo miraJava recursiva secuencia de Fibonacci - cuanto más grande sea el argumento inicial, más llamadas inútiles se harán).

Probablemente haya algo así como un "cambio de argumento cíclico", en el que la llamada al valor anterior de Fibonacci recuperará el valor en lugar de calcularlo nuevamente.

Respuestas a la pregunta(9)

Su respuesta a la pregunta