File: Stare vježbe/vjezbe07/43__fibonacci.c

  1. /*
  2.   43__fibonacci.c
  3.   Zbog nepazljivo napisane rekurzije, moze se dogoditi da se ona
  4.   mnogo puta poziva sa istom vrijednoscu parametra.
  5.   Globalna varijabla broj_poziva vidljiva je svim funkcijama.
  6.   -----
  7.   Program pomocu rekurzivnih poziva funkcije fibo racuna n-ti Fibonaccijev
  8.   broj.
  9. */
  10.  
  11. #include <stdio.h>
  12.  
  13. int broj_poziva;
  14.  
  15. int fibo ( int n )
  16. {
  17. broj_poziva++;
  18.  
  19. if (n==0) return 0;
  20. if (n==1) return 1;
  21.  
  22. return fibo(n-1) + fibo(n-2);
  23. }
  24.  
  25.  
  26. int main ()
  27. {
  28. int broj;
  29.  
  30. printf ("Unesite prirodni broj: ");
  31. scanf ("%d", &broj);
  32.  
  33. broj_poziva=0;
  34. printf ("%d. Fibonacci-jev broj je %d.\n", broj, fibo (broj));
  35. printf ("Za njegov izracun funkcija fibo pozvana je %d puta.\n",
  36. broj_poziva);
  37.  
  38. return 0;
  39. }
  40.