
4个回答
展开全部
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;
}
求大数的阶乘,因为要考虑到溢出问题,所以比较复杂|!
展开全部
用循环写比如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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小的数可以直接用__int64,
大的数的话需要用数组模拟大数.
大的数的话需要用数组模拟大数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要看你这个数字要有多大,一般来说超过15的阶乘估计你就只能用字符串的方式来计算了.
15是估计的一个数字,不确定.
15是估计的一个数字,不确定.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询