我正在制作一个打印数字因子的程序。简单。这是我的代码。
int main(void){
int testCases;
scanf("%d",&testCases);
while(testCases--){
int num,j;
float prod = 1;
scanf("%d",&num);
if(num == 0)
printf("0\n");
for(j=1;j<=num;j++){
prod = prod*j;
}
printf("%g\n",prod);
}
return 0;
}
现在这是一个非常简单的代码。但是当我采用像70这样的小数字因子时,我的问题就出现了!还是80! 。我已经尝试过unsigned long long但是即使这样也行不通。 例如 -
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
要计算这些类型的数字我应该使用什么?如果它存在,我可以对这种数据类型进行多次除法等操作吗?任何帮助都将深表感谢。