Faktöriyel hesaplama

Jacquez

Hectopat
Katılım
19 Ekim 2019
Mesajlar
125
Yer
Ankara
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar küçük sayıların faktöriyelini hesaplıyor (6 gibi) fakat büyük (120 gibi) sayıların faktöriyelini hesaplamıyor 0 gösteriyor. Sebebini söyler misiniz?

Kod:
#include<stdio.h>



int main(){

 

    int n;

    int fact=1;

 

    printf("Faktoriyelini bulmak istediginiz sayiyi girin:");

    scanf("%d",&n);

 

    while (n != 0){

      

        fact=fact*n;

      

      

      

         n-- ;

    }

    printf("%d",fact);

 

    return 0;

}
 
Son düzenleyen: Moderatör:
İnt sınırlarının dışına çıkıyorsun. Fact'ı int değil long veri tipi olarak tut.

Dipnot: printlemek için %l kullanılıyordu yanlış hatırlamıyorsam.
long'tan da ziyade unsigned long long int olarak tutulabilir, veya negatif sayıları da içine alabilmesi için long long int. Çünkü cidden 55 gibi sayıları girince anca böyle yetiyor.
 
İnt sayı sınırı -2.147.483.648 ile 2.147.483.647 arasında değil midir? Yeni başladım kodlamaya da yanlış biliyor olabilirim.
Hocam intin sınırlarını net bilmeye bile gerek yok. 2 milyar, 10 basamaklı bir sayıdır. 120! ise 199 basamaklı bir sayı. Sizce intin sınırlarına sığma şansı var mı :D
Ha hocam ek bir bilgi olarak şunu da ekleyeyim, hiçbir veri yapısıyla 120'nin faktöriyelini alamazsınız. Kendi veri yapınızı oluşturmanız ve onun için çarpım fonksiyonu yazmanız gerek. Yeni başlayan birinin seviyesini aşar ama ileride sizi gazlayacak güzel bir deneme olabilir.
 
Son düzenleme:

Geri
Yukarı