Faktoriyel Hesaplama (C Sharp)
Programlama mantığını kavramak için ilk başlarda özellikle Matris, Determinant, Faktoriyel gibi matematiksel işlemlerin üzerinde çok durulur. Bu yazımızda faktoriyel hesaplamayı C# Windows Application ile yapalım.
Bu programda yapmak istediğim şey, Kullanıcı tarafından girilen sayının faktoriyelini bulmak. Aşağıdaki formu hazırlayalım.
Hesapla Butonumuzun Click olayına;
long sayı, i, faktoriyel; sayı = Convert.ToByte(textBox1.Text); faktoriyel = 1; for (i = 1; i <= sayı; i++) { faktoriyel = (faktoriyel * i); } textBox2.Text = faktoriyel.ToString();
Yapmış olduğunuz kodları kullanarak faktöriyel hesaplayabilmekteyim. Fakat hesaplanacak değeri 20’den büyük yazdığımda program hata veriyor. Bu hatayı nasıl giderebiliriz?
20’den büyük yazdığınızda faktoriyel değişkeninin alabileceği maksimum değeriaştığından hata almaktasınız. Her değişkenin belirli bir sınırları vardır. Bu sınırı aşdığınız için hata almaktasınız. Bu hatayı gidermeniz mümkün değil long veri tipi en büyük tam sayı değerini içermektedir.
Yapmak istediğim program sınır olmadan herhangi bir pozitif tam sayının faktöriyelini almalıdır. BigInt gibi hazır kütüohane kullanamadan bu programı yapmak mümkün mü?
Veri tiplerinde muhakkak bir sınır bulunmaktadır. Siz faktoriyel değişkenini int tanımlarsanız -2.147.483.648 ila 2.147.483.647 değer arasında ki sonuçları görebilirsiniz. Long tanımlarsanız -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasındaki sonuçları görebilirsiniz ve hesaplayabilirsiniz. Bu sınırlar dışına çıkmak zor (hazır kütüphaneler dışında) ancak süper bilgisayarlarda bu değer bir şey yapmaya gerek kalmadan aşılabilir.