在我的C代码中,我想为1到100范围内的数字计算阶乘。对于较小的数字,该函数有效,但对于较大的数字,例如100!它返回错误的结果。在C中处理大数阶乘的任何方法。我使用的编译器是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);
}
人到中年有点甜
倚天杖