В моем C-коде я хочу рассчитать факторный номер для чисел в диапазоне от 1 до 100. Для небольших чисел функция работает, но для больших чисел, например, 100! он возвращает неверный результат. Любые способы обработки факториала больших чисел в C?. Компилятор im использует gcc v4.3.3. Мой код выглядит следующим образом:
#include <stdio.h>
#include <math.h>
double print_solution(int);
int main(void)
{
int no_of_inputs,n ;
int ctr = 1;
scanf("%d",&no_of_inputs); //Read no of inputs
do
{
scanf("%d",&n); //Read the input
printf("%.0f\n",print_solution(n));
ctr++;
}while(ctr <= no_of_inputs);
return 0;
}
double print_solution(int n)
{
if(n == 0 || n == 1)
return 1;
else
return n*print_solution(n-1);
}