Java récursif de la suite de Fibonacci

Veuillez expliquer ce simple code:

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

Je suis confondue avec la dernière ligne surtout parce que, si n = 5 par exemple, puis de fibonacci(4) + fibonacci(3) seraient appelés et ainsi de suite, mais je ne comprends pas comment cet algorithme calcule la valeur à l'indice 5 par cette méthode. Veuillez expliquer avec beaucoup de détails!

  • Notez que c'est récursive et s'exécute en temps exponentiel. Il est inefficace pour de grandes valeurs de N. en Utilisant une approche itérative, j'ai été en mesure de calculer les 10 000 premiers nombres de la séquence. Ils peuvent être trouvés ici - goo.gl/hnbF5
  • Pouvez-vous s'il vous plaît partager le code que vous avez utilisé pour le calcul de 10 000 numéros dans l'ordre ? Je suis vraiment curieux de le savoir.
  • Le lien que vous avez évoqué est mort.
  • Cette vidéo vous explique à comprendre la fonction récursive dans les 10 minutes youtube.com/watch?v=t4MSwiqfLaY
  • Jetez un oeil à la mine de solution.Optimisé pour l'appel récursif je suis un peu surpris de voir que nulle part cette approche est mentionné sur le net
  • Pour les futurs lecteurs, ici, est le saint graal de traçage double récursivité: youtube.com/watch?v=PT0mS3thy6Q&t=36s
  • Il y a aussi une approche Itérative qui pourrait être moins difficile pour vous. Excellent article sur les deux Récursif et Itératif avec le code ici - codeflex.co/java-get-fibonacci-nombre-par-index
  • Vous devez également retourner -1 si n est inférieur à 0, ou vous obtiendrez une erreur.

InformationsquelleAutor Index Hacker | 2012-01-22