Rapide de Fibonacci de la récursivité

Je suis en train d'essayer de se souvenir d'un algorithme de Fibonacci de la récursivité. Suivantes:

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

est pas ce que je cherche parce que c'est gourmand. Cela va croître de façon exponentielle (il suffit de regarder Java récursif de la suite de Fibonacci - le plus gros de l'argument initial les plus inutiles, les appels seront effectués).

Il y a probablement quelque chose comme un "cyclique argument shift", où l'appel précédent de Fibonacci de la valeur de récupérer la valeur au lieu de calculer à nouveau.

InformationsquelleAutor ducin | 2012-12-11