Déjà inscrit au forum ? Identifiez vous ci-dessous ( Mot de passe perdu / Mail de validation non reçu ) :

Pseudo : Mot de passe :

Pas encore inscrit ? Inscrivez vous maintenant au forum !

Recherche sur le forum:

Accueil du forum >> Langage C

Vous pourrez ici parler de vos problèmes et autres en langage C uniquement.
Exercice : La suite de Fibonacci
ok


Site/blog

72 messages

posté le 2009-02-25 à 17:47:40


Bonjour,
Voici un exercice mathématiques que je vous demanderait d'implémenter en C (je l'ai trouvé ici)...

Données mathématiques : On considère la suite numérique (appelée suite Fibonacci) de tel que Un=(U(n-2))+(U(n+1)) ; U0=1 et U1=2.

Explication : Cette suite à pour premier terme 1 puis pour second terme 2. Les termes suivant sont obtenus en faisant la somme des deux termes qui les précèdent. Cela donne :
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, etc.

Consigne : Codez programme calculant la somme des termes pairs qui sont inférieurs à 4 millions (ce n'est pas la somme qui doit être inférieure à 4 millions mais les termes pairs considérés).

Bonne chance et essayez de trouver par vous même (sinon ça ne sert à rien) !


Administrateur de L&P

ok


Site/blog

72 messages

posté le 2009-02-25 à 17:48:52

Voici ma solution très simple, mais sachez que de nombreuse solutions plus ou moins complexes sont possibles :
____________________________________
Code : C

/*solution de ok à cet exercice*/
#include <stdio.h>
int main(void)
{
int max=4000000l, Ua=1, Ub=2, Un, somme=Ub;
Un=Ua+Ub; /* 3e terme = somme des 2 termes précédant */
while (Un<=max)
{
Un+=Ub; /* "nouveau Un" = Un + Ub (termes précédant) */Ub=Un-Ub; /* Ub vaut ensuite le terme de la suite qui précède le "nouveau Un" */
if ((Un % 2)== 0) /* si le reste de la division de Un par 2 vaut 0, autrement dit, si Un est pair*/
{
somme+=Un; /* somme=somme + Un */
}
}
printf ("somme=%dn", somme);
return 0;
}
____________________________________


Administrateur de L&P