Alqoritm Analizi
fib
massivində bütün Fibonaççi ədədlərini hesablayacağıq, fib[i] = F(i)
təyin edəcəyik. Sonra tələb olunan Fibonaççi ədədini çıxaracağıq.
Nümunə
fib
massivi aşağıdakı kimi doldurulacaq:
Alqoritm İmplementasiyası
fib
massivində Fibonaççi ədədlərini hesablayacağıq: fib[i] = F(i)
.
#define MAX 46 int fib[MAX]; // Massivi təkrarlanma formuluna uyğun doldurun. fib[0] = 1; fib[1] = 1; for(int i = 2; i < MAX; i++) fib[i] = fib[i-1] + fib[i-2]; // Giriş dəyəri n-i oxuyun. Cavabı çıxarın. scanf("%d",&n); printf("%d\n",fib[n]);
Yaddaşla İmplementasiya
Fibonaççi ədədlərini yaddaşda saxlamaq üçün fib
massivini elan edin: fib[i] = f(i)
.
Təkrarlanan funksiya f(n)
-ci Fibonaççi ədədini tapır.
#define MAX 46 int fib[MAX]; int f(int n) { if (n <= 1) return 1; if (fib[n] != -1) return fib[n]; return fib[n] = f(n-1) + f(n - 2); } // Proqramın əsas hissəsi. n ədədini oxuyun. scanf("%d",&n); // fib massivinin bütün elementlərinə -1 dəyərini təyin edin. memset(fib,-1,sizeof(fib)); // f(n) dəyərini tapıb çıxarın printf("%d\n",f(n));