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.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

Bu blogdaki popüler yayınlar

31 : Fonksiyonda Struct Kullanımı

Structure - 29 : Yapılar ile Öğrenci Bilgileri Tutma

23 : İki Karakter Dizisini Birleştirme