Bonjour,

J'ai créer une petite fonction destinée à calculer le n-ième terme de la suite de Fibonacci : 1,1,2,3,5,8,13 ... (chaque terme égale la somme des deux précédents)

Pourriez-vous y jeter un coup d'oeil (tout marche, tout fonctionne mais j'aimerais avoir votre avis ...) :

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
 
/* Suite de Fibonacci, chaque terme est égale à la somme de deux précdents : 1,1,2,3,5,8 ...
Le n ième terme est donc la somme des termes (n-1) et (n-2) si n>2 (n entier positif) */
long int fib(unsigned int n)
{
     long int resultat=1;                    // Le n ième terme
     long int terme_1 = 1, terme_2 = 1;      // Les termes n-1 et n-2
 
     if (n < 3) return 1;
 
     resultat = 2;
     for (int C=3; C<=n; C++)
     {
         // n = (n -1) + (n - 2)
         resultat = terme_1 + terme_2;
         /* Logiquement, lorsqu'on passe au terme suivant, le terme (n-1)devient le terme (n - 2) et le terme (n - 2) devient le terme n */
         terme_1 = terme_2;
         terme_2 = resultat;
     }
     return resultat;
}
Est ce qu'il y certaines choses que j'ai faites de travers (niveau de l'algo) ? Y a il des améliorations a apportées ?

merci