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;
}
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.
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ı
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.