Oppure

Loading
26/10/12 13:31
web_pirate
Ragazzi, per esercizio mi sono messo a creare un algoritmo che scriva i primi n numeri della sequenza di fibonacci nel minor numero di righe possibile, prendendo n da riga di comando. Come vi sembra questo tentativo? :D
#include <stdio.h>

int main(int argc, char *argv[]){
int prox, cont=0, y;
int j[2];

j[0]=(j[1]=cont)+1;

	for(y=0;y<atoi(argv[1]);y++){
		printf("%d\n", prox=j[0]+j[1]);
		j[0]=j[1];
		j[1]=prox;
	}	
}
aaa
27/10/12 9:54
Il Totem
Se devi solo scriverli, non ti serve un array, quindi j va eliminato. Ti servono solo due variabili:
#include <stdio.h>
 
int main(int argc, char *argv[]){
    int a = 0, b = 1, c;

    for(int y = 0; y < atoi(argv[1]); y++) {
        printf("%d\n", b);
        c = b;
        b = a + b;
        a = c;
    }      
}


In realtà si può anche fare di meglio, sotto l'ipotesi che gli operandi vengano considerati da sinistra verso destra (quindi il parser deve essere L-associativo):
#include <stdio.h>
 
int main(int argc, char *argv[]){
    int a = 0, b = 1;

    for(int y = 0; y < atoi(argv[1]); y++) {
        printf("%d\n", b);
        b = a + (a = b);
    }      
}
aaa