C'est simple, mais c'est assez abstrait pour déranger ceux qui s'y frotte. En fait, la récursivité c'est la répétition d'une même méthode (en gros, j'ai pas appris ça à l'école), mais tu dois déjà avoir une définition plus juste que la mienne. Dans ton cas, c'est très simple. Tout l'interet de la méthode est là :
res = fibonacci(nb-1) + fibonacci (nb-2);
Dans la méthode fibonacci, si le paramètre nb n'est pas 1 ou 2, on appelle deux nouvelle méthode fibonacci avec : le paramètre nb - 1 et une autre avec nb - 2. Un schéma s'impose pour mieux comprendre (mes talents à Paint sont limités, désolé). Tant que le paramètre ne sera pas égal à 1 ou à 2, ta méthode en appellera 2 autres, qui en appelleront 4 autres(2 chacune) et ainsi de suite. Tu vois le bordel
? Le meilleur moyen de bien comprendre tout ça c'est d'utiliser System.out.println(), avec une phrase et les valeurs en cours pour bien voir combien de fois ta méthode est appelé et avec quel paramètre. Quand le chemin sera réalisé, et que de nouvelles méthodes crées par des méthodes fibonacci auront comme paramètre 1 et 2, tes méthodes vont, récursivement dans le sens inverse, retourner les valeurs pour te donner ton résultat. Bonne chance.
Partager