Bonjour ,
Lors d' un appel du méthode récursif , on a besoin d' un cas qui permet d'arreter la méthode récursif et c' est a ce moment que se réalise le désempilement.
Mais dans le cas du calcul de la suite de Fibonacci , il y a 2 appels recursif:
[CODE]public static int Finorec(int n ){
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 int resultat; System.out.println ("Entrée 1 , n = " + n ); if (n ==0 || n== 1) { resultat = 1; }else { System.out.println ("Entrée 2 , n = " + n ); resultat = Finorec (n-1) + Finorec (n-2); System.out.println ("Sortie 2 , n = " + n + " resultat = " + resultat); } System.out.println ("Sortie 1, n = " + n + " resultat = " + resultat ); return resultat;
Autant avec factorielle en récursif , j' avais compris le fonctionnement , mais ici comment cela se passe t il?J' ai mis des traces pour essayer d' en comprendre le cheminement.
Une fois qu il rencontre le premier appel recursif Finorec (n-1)comment fait il pour le 2 eme appel récursif?
merci
Partager