c语言中如何求一个数的阶乘
long f1(int n)
{
if (1 == n) return 1;
return n * f(n - 1);
}
long f2(int n)
{
int i, a = 1;
for (i = 1; i <= n; i++)
a *= i;
return a;
}
求大数的阶乘,因为要考虑到溢出问题,所以比较复杂|!
{
if (1 == n) return 1;
return n * f(n - 1);
}
long f2(int n)
{
int i, a = 1;
for (i = 1; i <= n; i++)
a *= i;
return a;
}
求大数的阶乘,因为要考虑到溢出问题,所以比较复杂|!
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-05-19
用循环写比如15!
unsigned char sum
sum=1;
for(i=1;i<16;i++)
sum=i*sum;
unsigned char sum
sum=1;
for(i=1;i<16;i++)
sum=i*sum;
第2个回答 2011-05-19
小的数可以直接用__int64,
大的数的话需要用数组模拟大数.
大的数的话需要用数组模拟大数.
第3个回答 推荐于2016-01-17
要看你这个数字要有多大,一般来说超过15的阶乘估计你就只能用字符串的方式来计算了.
15是估计的一个数字,不确定.本回答被提问者采纳
15是估计的一个数字,不确定.本回答被提问者采纳