IMG-LOGO

C Programlama Fibonacci dizisi


Fibonacci dizisi, her sayının kendinden öncekiyle toplanması sonucu oluşan bir sayı dizisidir. Bu şekilde devam eden bu dizide sayılar birbirleriyle oranlandığında altın oran ortaya çıkar, yani bir sayı kendisinden önceki sayıya bölündüğünde altın orana gittikçe yaklaşan bir dizi elde edilir. Bu durumda genel olarak n'inci Fibonacci sayısı F(n) şu şekilde ifade edilir:

IMG

C Programlama Fibonacci dizisi

#include <stdio.h>

int main()
{
  int n, first = 0, second = 1, next, c;

  printf("Terim sayisini girin\n");
  scanf("%d", &n);

  printf("Ilk %d Fibonacci terimi:\n", n);

  for (c = 0; c < n; c++)
  {
    if (c <= 1)
      next = c;
    else
    {
      next = first + second;
      first = second;
      second = next;
    }
    printf("%d\n", next);
  }

  return 0;
}

C Programlama Özyineleme(recursion) ile Fibonacci dizisi

#include<stdio.h>

int f(int);

int main()
{
  int n, i = 0, c;

  scanf("%d", &n);

  printf("Fibonacci dizisi terimleri:\n");

  for (c = 1; c <= n; c++)
  {
    printf("%d\n", f(i));
    i++;
  }

  return 0;
}

int f(int n)
{
  if (n == 0 || n == 1)
    return n;
  else
    return (f(n-1) + f(n-2));
}


Özyinelemeli yöntem, dizinin daha büyük terimlerini hesaplarken yığın taşmasına(stack overflow) neden olabilecek tekrarlanan işlev çağrıları içerdiğinden daha az verimlidir. Memoization(Türkçe karşılığı yok) (bir dizide hesaplanan Fibonacci sayılarını saklamak ve diziyi arama için kullanarak) kullanarak, özyinelemeli algoritmanın çalışma süresini azaltabiliriz. Dizinin Matematik ve Bilgisayar Bilimleri alanında birçok uygulaması var.