计算此方法中的阶乘:
unsigned long long factorial(int n){
unsigned long long temp = 1L;
for(int i = 0 ; i < n ; i++){
temp *=(n - i);
}
printf("\n%d factorial is %llu",n,temp);
return temp;
}
仅允许计算到20!
。
20! = 2432902008176640000 << 2^64
21! = 51090942171709440000 >> 2^64
我从未使用uintmax_t
并阅读其他一些SO文章,使用起来感觉非常复杂。如果有人可以提供一些简单的片段作为如何使用和打印它们,这将是一个重大的帮助。
编辑关于Didier Trosset的问题,我认为20肯定不会是人们可以计算C中的阶乘的极限。我正在读取uintmax_t是最大的数据类型,所以我认为它可能是128位或其他东西。所以我想用它。
另外,我不知道C中的大型int库。抱歉,如果我创建了一个重复的帖子。