C# ile rekürsif (recursive) bir fonksiyon nasıl oluşturulur, açıklayıcı bir örnek ile anlatayım:
Rekürsif Fonksiyon Nedir?
Rekürsif bir fonksiyon, kendini çağırabilen ve bir problemi daha küçük ve daha yönetilebilir alt problemlere bölen bir fonksiyondur. Bu yöntem, özellikle problemin doğasının kendini yinelemeli olduğu durumlarda kullanışlıdır.
Örnek: Faktöriyel Hesaplama
Faktöriyel, pozitif bir tam sayının kendisi ile 1 arasındaki tüm tam sayıların çarpımıdır. Örneğin, 5 faktöriyel (5!) şu şekildedir: 5 x 4 x 3 x 2 x 1 = 120. Bu işlemi rekürsif bir fonksiyon ile hesaplayabiliriz.
csharp
Copy code
using System;
class Program
{
static void Main()
{
Console.WriteLine(“Faktöriyelini hesaplamak istediğiniz sayıyı girin:”);
int sayi = Convert.ToInt32(Console.ReadLine());
long sonuc = FaktoriyelHesapla(sayi);
Console.WriteLine($"{sayi} faktöriyel = {sonuc}");
}
static long FaktoriyelHesapla(int n)
{
// Temel durum: n 0 veya 1 ise faktöriyel 1'dir.
if (n <= 1)
{
return 1;
}
// Rekürsif çağrı: n faktöriyel, n ile (n-1) faktöriyelinin çarpımıdır.
else
{
return n * FaktoriyelHesapla(n - 1);
}
}
}
Bu örnekte, kullanıcıdan bir sayı alınır ve bu sayının faktöriyeli rekürsif bir fonksiyon ile hesaplanır. Fonksiyon, n değeri 0 veya 1 olduğunda işlemi sonlandırır (temel durum) ve aksi durumda n faktöriyeli, n ile (n-1) faktöriyelinin çarpımı olarak hesaplanır. Bu, rekürsif fonksiyonların temel bir örneğidir.
Rekürsif fonksiyonlar, birçok problem için güçlü ve açıklayıcı bir yaklaşım sunar, ancak doğru bir şekilde kullanmaya dikkat etmek önemlidir çünkü yanlış şekilde tasarlanmış bir rekürsif fonksiyon, sonsuz döngülere veya bellek taşmalarına neden olabilir.