Fibonacci dizisini, orta çağın yetenekli İtalyan matematikçisi Leonardo Fibonacci tarafından keşfedilmiştir. Fibonacci dizisi ilk iki sayı 0 ve 1 olmak üzere önceki 2 sayının toplamından sonraki sayıyı bulma algoritması ile oluşturulmaktadır. Şöyle ki
İlk Sayı : 0
İkinci Sayı : 1
Sonraki Sayı = 0 + 1 = 1;
Sonraki Sayı = 1 +1 = 2 ;
Sonraki Sayı = 2 + 1 = 3; diye devam eder. Bu dizi 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 diye devam eder.
C# dili ile Fibonacci Algoritmasını koda dökelim. Girilen sayı kadar Fibonacci dizisi üreten bir kod yazalım:
using System;
namespace FibonacciAlgoritması
{
class Program
{
static void Main(string[] args)
{
int n1 = 0, n2 = 1, n3, i, sayi;
Console.Write("Fibonacci Dizisi Eleman Sayısı: ");
sayi = int.Parse(Console.ReadLine());
Console.Write(n1 + " " + n2 + " "); //0 ve 1 sayılarını yazar. Fibonacci dizisinin İlk iki sayısı
for (i = 2; i < sayi; ++i) //loop 2'den başlar çünkü 0 ve 1 i zaten yazdırmıştık.
{
n3 = n1 + n2;
Console.Write(n3 + " ");
n1 = n2;
n2 = n3;
}
}
}
}
Fibonacci Dizisini bulmak için recursive denilen yöntemle de çözelim. Recurve kelimesinin Türkçe karşılığı “özyineleme” olarak kayıtlara geçmiş. Özyinele ile ilgili detaylı yazı için tıklayınız…
using System;
namespace FibonacciAlgoritmasi
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Fibonacci Dizisi Eleman Sayısı: ");
int sayi= Convert.ToInt32(Console.ReadLine());
Fibonacci(0, 1, sayi);
}
public static void Fibonacci(int a, int b, int sayi)
{
Console.WriteLine(a);
if (sayi> 1) Fibonacci(b, a + b, --sayi);
}
}
}
Yorum Ekle