Следующий код используется для нахождения факториала заданного числа, но не может найти факториал 100, но прекрасно работает с числами меньше 5!
Этот код находит факториал для заданного числа, но этот код способен найти факториал только для меньших чисел, когда большие числа, такие как 100 или более, показывают ноль, а выход такой: "факториал 100 равен 0", не могли бы вы исправить этот код для меня.
Что я уже пробовал:
#include<stdio.h> unsigned long long factorial(unsigned long long x); int main(void) { unsigned long long a=100, fact; fact= factorial(a); printf("the factorial of %llu is %llu",a,fact); } unsigned long long factorial(unsigned long long x) { unsigned long long f; if(x==1) return (1); else f= x*factorial(x-1); return (f); }
F-ES Sitecore
Вероятно, потому, что unsigned long недостаточно велик, чтобы вместить 100!