C语言大整数求阶乘

C语言大整数求阶乘,我已经写出来加.减.乘.除法计算器,但是在阶乘处卡了
因为计数器不可能用数组啊,那样循环就不够了,我应该用循环镶套还是递归啊,
循环镶套
for(a=0;a<10000;a++)
for(b=0;b<10000;b++)
for(c=0;c<10000;c++)
for(d=0;d<10000;d++)
{
程序段。。。。。。。。。;
}
这样他就有10000*10000*10000*10000那么长了

用递归的我没有做出来,请教一下

这样好象程序的运行次数过长,计算机不知道受得住不,有更好的算法吗?让程序少运行几次?

C的语法已经比较生疏了,只能给你个算法了,见谅。

我认为用递归比较好。

factorial(int[] o){
if(最末一位 == 1 && sum(o) == 1) /*另外写个sum来求array的和,这个结果该不会超出int或者Long吧,要不然就恐怖了……另外最好最末一位的判断写在前面,这样该可以减少sum的执行次数*/
return o;
else return multiply(o, factorial(subtract(o, 1)));
}
/*建议overload(也就是多写个)subtract,让它可以接受一个int array和int,不然有点麻烦*/
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网