///////////////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// https://www.its.edu.rs
// Predmet: Osnovi Programiranja – Programski jezik
// Primer: Program za ispis Fibonacijevih brojeva. Rešenje preko rekurzije.
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
int fibonaci(int n);
main()
{
int n,i;
//pozdravna poruka
printf(“+——————————————-+
“);
printf(“| |
“);
printf(“| Program za ispis Fibonacijevih brojeva |
“);
printf(“| |
“);
printf(“+——————————————-+
“);
//stampanje obavestenja i unos promenljive
printf(“Unesite broj clanova niza < n >: “);
scanf(“%d”, &n);
printf(“
“);
//For petlja koja predstavlja uvecanje vrednosti i za 1 do unete vrednosti n
for(i=0; i<=n; i++)
{
printf(“F(%d) = %d
“, i, fibonaci(i));
}
printf(“
“);
}
int fibonaci(int n)
{
//provera uslova da li je n jednako 1
if(n==1)
{
return(1);
}
//provera uslova da li je n=0
else if(n==0)
{
return(0);
}
else
{
return(fibonaci(n-1)+fibonaci(n-2));
}
}
Napomena:
Primer kada ne treba koristiti rekurziju za velike unose.
Rekurzivna funkcija poziva samu sebe dva puta u svakoj iteraciji,
zbog čega pri obradi većih brojeva dolazi do preopterećenja procesora,
čak i kod savremenih dual core procesora.
Probati za n=40 i posmatrati opterećenje procesora.