13 : Faktoriyel Hesabı
Bir sayının faktoriyel hesabı 1' den o sayıya kadar olan tam sayıların çarpımı ile bulunur. Negatif sayıların faktoriyeli yoktur. 0 faktoriyel ise 1' e eşittir. Bu bilgiler ışığında kodu yazalım.
Faktoriyel sonucunu atadığımız değişkeni unsigned long long seçtik çünkü sonuç hem negatif olamaz hem de bir çok tamsayı çarpımı olabileceği için çok büyük sayılar çıkabilir. Sayıyı kullanıcının girmesini istedikten sonra ilk kontrolümü negatif mi kontrolü. Çünkü daha önce söylediğimiz gibi negatif bir sonuç öngörmüyoruz.
Daha sonra faktoriyel hesabına geçtik ve bu kısım for döngüsü ile yapılıyor. Burada başlangıç değerim 2. Açıktır ki 0' dan başlayamayız. Aksi takdirde sonucumuz hep 0 çıkacaktır. Bir ihtimal 1' den başlatabilirdik. Ancak matematikte 1 etkisiz eleman olduğu için boş yere bir dönüş yapmış olacaktı. Faktoriyel değişkeninin ilk değeri 1 olarak atandı. Bu da eğer kullanıcı 1 sayısının faktoriyelini bulmak isterse işe yarayacak. Burada if kısmına girmeyecek ve else kısmında döngü kontrolünden de geçemeyerek sonuç etkilenmeden 1 olarak bulunacak.
faktoriyel.c
#include <stdio.h>
int main()
{
int sayi, i;
unsigned long long faktoriyel = 1;
printf("Bir sayi giriniz: ");
scanf("%d",&sayi);
if (sayi < 0)
{
printf("Negatif sayilarin faktoriyeli yoktur.\n");
}
else
{
for(i=2; i<=sayi; ++i)
{
faktoriyel *= i;
}
printf("%d faktoriyel = %llu \n", sayi, faktoriyel);
}
return 0;
}
Faktoriyel sonucunu atadığımız değişkeni unsigned long long seçtik çünkü sonuç hem negatif olamaz hem de bir çok tamsayı çarpımı olabileceği için çok büyük sayılar çıkabilir. Sayıyı kullanıcının girmesini istedikten sonra ilk kontrolümü negatif mi kontrolü. Çünkü daha önce söylediğimiz gibi negatif bir sonuç öngörmüyoruz.
Daha sonra faktoriyel hesabına geçtik ve bu kısım for döngüsü ile yapılıyor. Burada başlangıç değerim 2. Açıktır ki 0' dan başlayamayız. Aksi takdirde sonucumuz hep 0 çıkacaktır. Bir ihtimal 1' den başlatabilirdik. Ancak matematikte 1 etkisiz eleman olduğu için boş yere bir dönüş yapmış olacaktı. Faktoriyel değişkeninin ilk değeri 1 olarak atandı. Bu da eğer kullanıcı 1 sayısının faktoriyelini bulmak isterse işe yarayacak. Burada if kısmına girmeyecek ve else kısmında döngü kontrolünden de geçemeyerek sonuç etkilenmeden 1 olarak bulunacak.
Yorumlar
Yorum Gönder