Menu

Suite de fibonacci en c [Fermé]

jean - 30 oct. 2007 à 14:17 - Dernière réponse :  djon
- 13 janv. 2018 à 20:53
Bonjour, je dois faire un programme qui affiche et calcule les 20 premiers nombres de la suite de fibonacci.

comment tout afficher?
merci

{
int n, i;
double a, b, c;
c = 0;
b = 1;
printf (" calcul de la suite de Fibonacci.\n");
printf ("Entrez N\n");
scanf ("%d", &n);
if (n==0 || n==1)
{
printf ("n = %d", n);
}
else
{
for (i=2;i<=n;i++)
{
a = b + c;
c = b;
b = a;
}
}
printf ("F = %lf\n", a);

}
Afficher la suite 

17 réponses

achrafdimadima - 15 nov. 2010 à 03:34
+3
Utile
5
#include<stdio.h>
#include<conio.h>
main()
{
int i, j, n, a, U;
Bip :
printf("ce programme vs permet de calculer la n-eme valeur de Un\nUnetant la suite de Fibonacci\n");
printf("n=");
scanf("%d",&n);
while (n<=0)
{printf ("donnez un nombre positif") ;
printf("\nn=");
scanf("%d",&n);
}
if (n==1 || n==2) printf("\nUn = 1\n");
if (n>2)
{
i=0; j=1;
for (a=2;a<=n;a++)
{
U = i + j;
i = j;
j = U;
}
printf ("Un = %d\n", U);
}
goto Bip ;
getch();
}
Cette réponse vous a-t-elle aidé ?  
Pacorabanix 3252 Messages postés jeudi 23 août 2007Date d'inscription 18 mai 2013 Dernière intervention - 27 janv. 2012 à 16:36
goto o_O

"oh my god"
c'est marrant de tapper un lettre dans ce prog \o/... Boucle infinie youhouu x) !
xD
Certes, mais là on considère que c'est l'utilisateur qui devrait faire gaffe. Mais je viderais quand même le buffer après le scanf()
fiddy 11141 Messages postés samedi 5 mai 2007Date d'inscriptionContributeurStatut 18 octobre 2016 Dernière intervention - 16 janv. 2013 à 21:28
Tu réponds à un truc datant d'un an...
Mais vider le buffer n'est pas suffisant. Il y a d'autres préconisations à prendre lorsqu'on utilise scanf()...
Arya Dröttningu 592 Messages postés mardi 12 janvier 2010Date d'inscription 17 septembre 2017 Dernière intervention - 15 nov. 2010 à 08:20
+2
Utile
bonjour,
un conseil : évite les goto ;)
+1
Utile
8
Il faut décaler le printf final dans la boucle for pour qu'il soit exécuté plusieurs fois!
def fib(n) :
if n<=2:
return n
else:
return fib(n-1)+fib(n-2)

for i in range(1,1000):
print fib(i)
Oui, merci mais si vous je veux voir le resultat, pour chaque fib(i), pour chaque tour, ça serait ça
fiddy 11141 Messages postés samedi 5 mai 2007Date d'inscriptionContributeurStatut 18 octobre 2016 Dernière intervention - 27 janv. 2012 à 16:50
Bonjour,

Merci de créer votre propre poste. Il ne s'agit pas du même langage.
Faudrait lire correctement les problèmes posés avant d'y répondre...
D'ailleurs, c'est quel langage ?
Adel_Geek 7 Messages postés mercredi 16 janvier 2013Date d'inscription 25 janvier 2013 Dernière intervention - 16 janv. 2013 à 22:46
+1
Utile
#include <stdio.h>
#include <stdlib.h>

int u(int n) {
if(n < 0) {
printf("Impossible! n est < 0\n");
exit(EXIT_FAILURE);
}
else if(n == 0 || n == 1) return 1;
else return u(n-1) + u(n-2);
}

int main() {
int n, i;
printf("Initialiser n: "); scanf("%d", &n);

for(i=0; i<=n; i++) {
if(i==0 || i==1) printf("U(%d) = %d\n", i, 1);
else printf("U(%d) = U(%d) + U(%d) = %d + %d = %d\n", i, i-1, i-2, u(i-1), u(i-2), u(i));
}
system("pause");

return 0;
}