Zor faktöriyel, faktöriyel hesaplamada kullanılan bir matematiksel terimdir. Normal faktöriyel işlemi, pozitif tam sayılar için tanımlıdır ve n! şeklinde gösterilir. n faktöriyel, 1’den n’ye kadar olan tüm pozitif tam sayıların çarpımına eşittir. Ancak, zor faktöriyel işlemi negatif tam sayılar ve hatta reel sayılar için de tanımlıdır. Bu işlemi hesaplamak için C# programlama dili kullanılabilir.

Aşağıda, C# ile zor faktöriyel hesaplama işlemi için örnek bir kod gösterilmiştir. Bu örnekte, faktöriyel işlemi için bir recursive (özyinelemeli) fonksiyon kullanılmıştır. Bu fonksiyon, bir sayının faktöriyelini hesaplamak için kendisini tekrar eden bir şekilde çağırır.
csharp
using System;
class Program
{
static double ZorFaktoriyel(double n)
{
if (n > 0) // pozitif sayılar için normal faktöriyel hesaplanır
{
return n * ZorFaktoriyel(n – 1);
}
else if (n < 0) // negatif sayılar için zor faktöriyel hesaplanır
{
return -n * ZorFaktoriyel(-n – 2);
}
else // sıfırın faktöriyeli 1’dir
{
return 1;
}
}
static void Main(string[] args)
{
double n = -5.5; // zor faktöriyel hesaplanacak sayı
double sonuc = ZorFaktoriyel(n);
Console.WriteLine(n + " sayısının zor faktöriyeli: " + sonuc);
}
}
Yukarıdaki örnek kodda, ZorFaktoriyel() adlı bir özyinelemeli fonksiyon tanımlanmıştır. Bu fonksiyon, girdi olarak verilen sayının zor faktöriyelini hesaplar. Fonksiyon, pozitif sayılar için normal faktöriyel işlemini, negatif sayılar için ise -1’den başlayarak sırasıyla (-n), (-n+2), (-n+4), … şeklinde olan sayıların çarpımını hesaplar.
Main() metodu, programın çalıştırılmasını sağlar. Bu metotta, öncelikle zor faktöriyel hesaplanacak sayı (-5.5) belirlenir ve ZorFaktoriyel() fonksiyonuna bu sayı gönderilir. Fonksiyonun döndürdüğü sonuç, Console.WriteLine() yöntemi ile ekrana yazdırılır.
Örnek çıktı şu şekildedir:
diff
-5.5 sayısının zor faktöriyeli: -1525,46783624281