Fibonacci serisi, her sayının kendisinden önceki iki sayının toplamı olduğu bir sayı dizisidir. Serinin ilk iki elemanı 0
ve 1
olarak tanımlanır. Fibonacci serisi şu şekilde ilerler: 0, 1, 1, 2, 3, 5, 8, 13, 21
ve devam eder. Bu yazıda, C# dilinde recursive bir metot kullanarak Fibonacci serisini nasıl oluşturabileceğimizi öğreneceğiz.
Fibonacci serisini recursive olarak hesaplamak için iki temel durum (base case) tanımlanır:
n = 0
ise Fibonacci sayısı 0
'dır.n = 1
ise Fibonacci sayısı 1
'dir.Bunun dışında, Fibonacci sayısı şu şekilde hesaplanır:
Fibonacci(n) = Fibonacci(n - 1) + Fibonacci(n - 2)
using System; class Program { static void Main(string[] args) { Console.WriteLine("Fibonacci serisinin eleman sayısını girin:"); int count = int.Parse(Console.ReadLine()); Console.WriteLine("Fibonacci Serisi:"); for (int i = 0; i < count; i++) { Console.Write(Fibonacci(i) + " "); } } // Recursive olarak Fibonacci sayısını hesaplayan metot static int Fibonacci(int n) { if (n == 0) // Base case 1 { return 0; } if (n == 1) // Base case 2 { return 1; } return Fibonacci(n - 1) + Fibonacci(n - 2); // Recursive case } }
Kullanıcı, Fibonacci serisinden kaç eleman görmek istediğini belirler. Örneğin, kullanıcı 8
girerse, programın çıktısı şu şekilde olur:
Fibonacci serisinin eleman sayısını girin: 8 Fibonacci Serisi: 0 1 1 2 3 5 8 13
Main
metodu: Kullanıcıdan bir sayı alır ve bu sayı kadar Fibonacci serisi elemanını ekrana yazdırır. for
döngüsü, her bir Fibonacci elemanını sırasıyla hesaplamak için Fibonacci
metodunu çağırır.Fibonacci
metodu: Recursive bir yapı kullanarak Fibonacci serisinin belirli bir elemanını hesaplar. Eğer n = 0
veya n = 1
ise base case'ler kullanılır; aksi halde recursive olarak kendisini çağırır.Recursive Fibonacci metotlarının avantaj ve dezavantajlarını anlamak önemlidir:
Fibonacci(10)
hesaplanırken birçok gereksiz işlem tekrar edilir.Bu dezavantaj, dinamik programlama veya iterative çözümler kullanılarak giderilebilir.
Recursive yöntem, Fibonacci serisini hesaplamak için etkili ve kolay anlaşılır bir yaklaşım sunar. Ancak, büyük değerler için performans sorunlarına dikkat etmek gerekir. Fibonacci serisini öğrenirken recursive metotlarla çalışmak, bu önemli programlama kavramını anlamanıza yardımcı olacaktır.