你的程序虽然看上去短但是如果只考虑乘除加减运算的话,你的次数比我的多(在我的mulMyArray函数你知使用了4*n次,你的计算阶乘的是这里吧
for (e=1;e<=f;e++) for(x=22;x>=0;c=t[x],c*=e,a=c/p,b=c%p,t[x]=b+g,g=a,x--);
太多了吧!!
好像还有问题如果从程序算法来看,当你计算c*=e时由于都是long这时如果发生有进位,那么你后面的g代表的进位值又有什么意义啊???? ——long的上限为2147483647
好像你没注意到你在数组里面存储的值并不是十进制把而且long是带符号的有可能计算的时候出现错误啊,没有处理进位的代码不严谨。
[此贴子已经被作者于2004-10-17 13:02:33编辑过]