PDA

View Full Version : [c]creare un loop della sequenza di fibonacci


stefano1990
01-11-2009, 17:41
ciao a tutti,
oggi mentre studiavo per un esame mi sono messo a giocherellare con c e mi è presa la malsana idea di creare un loop che mi continui a calcolare i numeri della sequenza di fibonacci.
Ho creato il programma ma ho qlc problema!
Vorrei far rallentare la velocità del loop in modo che i numeri siano leggibili mentre vengono stampati su schermo.
Secondo problema dal 45 numero della sequenza in poi vi sono errori di calcolo,suppongo avvenga in quanto vada in overflow.
Di seguito il programma:
# include<stdio.h>

int main()
{
long int f,f1=0,f2=1;
int i;




for(i=1;i<=50;i++)
{
f=f1+f2;
f1=f2;
f2=f;

printf("\n %d,",f);

}

system("PAUSE");
}

(il ciclo for non è un loop per controllare da quale numero in poi vi sono "errori di calcolo")

Mesh89
02-11-2009, 13:02
Per rallentare il ciclo puoi usare la funzione sleep (all'interno ci va il numero di millisecondi). Mi pare di capire che tu sia su windows, quindi forse lì diventa Sleep.

Per quanto riguarda l'overflow, non puoi farci nulla, se non usare numeri interi a lunghezza arbitraria (l'approccio più semplice è generalmente un array in cui ogni elemento rappresenta una cifra). Mi pare però che nella maggior parte dei compilatori (compreso il GNU, che probabilmente starai usando) long int = 32 bit, quindi puoi usare variabili più capienti (64bit) dichiarandole "unsigned long long int", ma non farai altro che "ritardare" l'overflow.

stefano1990
03-11-2009, 16:43
grazie mille ci sono riuscito!ma l'overflow arriva cmq inesorabile!pazienza!