| 
 File: Stare vježbe/vjezbe07/44__fibonacci__static.c 
/*     44__fibonacci__static.c     "Ispravak" programa 43__fibonacci.c -- broj_poziva je bitno manji.     Staticka varijabla (u ovom slucaju polje fib) se "stvara" samo jednom za      funkciju, a ne jednom za svaki poziv funkcije.     -----     Program pomocu rekurzivnih poziva funkcije fibo racuna n-ti Fibonaccijev     broj. Nakon sto izracunamo neki Fibonaccijev broj spremamo ga u polje fib      tako da ga necemo vise puta racunati (varijabla fib je staticka!). */   #include <stdio.h>   #define MAXN 100   int broj_poziva;   int fibo ( int n ) {     static int fib[MAXN]={0};       broj_poziva++;       if (n==0) return 0;     if (n==1) return 1;       if (fib[n]==0) fib[n]=fibo(n-1) + fibo(n-2);       return fib[n]; }     int main () {     int broj;       printf ("Unesite prirodni broj: ");      scanf ("%d", &broj);       broj_poziva=0;     printf ("%d. Fibonacci-jev broj je %d.\n", broj, fibo  (broj ));      printf ("Za njegov izracun funkcija fibo pozvana je %d puta.\n",                broj_poziva);       /* jos jednom ponavljamo za neki drugi broj -- uocite koliki je        sada broj_poziva */       printf ("\nUnesite prirodni broj: ");      scanf ("%d", &broj);       broj_poziva=0;     printf ("%d. Fibonacci-jev broj je %d.\n", broj, fibo  (broj ));      printf ("Za njegov izracun funkcija fibo pozvana je %d puta.\n",                broj_poziva);       return 0;    }   
 
          
  
       |