Простая C-факториальная программа не работает должным образом с большими числами
Это простая факториальная программа на C Большие цифры отображают не то, что нужно. Иногда отрицательные числа и для факториала 100 выводит 0. Я тоже длинный, как я могу это исправить?
#include <stdio.h>
long factorial(long n){
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}
int main()
{
printf("%ld", factorial(50));
}