#include /* Fibonaccijevi brojevi - long int. Obicno iterativno zbrajanje prethodnih clanova niza, bez rekurzije i bez polja. */ /* Aditivni Fibonacci. Pretpostavka je n >= 0 (NE provjerava se). */ long int fibonacci(int n) { long int f_n, f_p, f_pp; /* Namjerno NE inic. */ int i; if (n == 0) return 0; /* F[0] */ if (n == 1) return 1; /* F[1] */ /* Sad inicijaliziramo prva dva. Inicijalizacija odgovara stanju za n = 1 (a ne 2). */ f_p = 0; /* Prosli F[0] */ f_n = 1; /* Ovaj F[1] */ for (i = 2; i <= n; ++i) { f_pp = f_p; /* F[i - 2] */ f_p = f_n; /* F[i - 1] */ f_n = f_p + f_pp; /* F[i] */ } return f_n; } /* Glavni program za demo. */ int main(void) { int broj, n; printf(" Unesite prirodni broj: "); scanf("%d", &broj); printf("\n"); for (n = 0; n <= broj; ++n) printf (" F(%2d) = %11ld\n", n, fibonacci(n)); return 0; }