就是求n!
(一)
对于
for(k=1;k <i;k++) 这句,
假如此时i=3,j=max-1,
那新个位 就是 3个以前结果的个位相加并进位后剩下的个位。(循环开始时a[max-1],b[max-1]都是以前结果的个位)
(二)
转自http://www.programfan.com/blog/article.asp?id=568
(三)
转自http://download.csdn.net/source/629944
(四)
转自http://hi.baidu.com/peng3409/blog/item/87917cd997b747ec38012f6d.html
HDU 1042—题目要求计算10000!大约有35000~36000位,用上篇介绍的方法是满足不了需求的。分析,我们可以知道计算时所需要的时间耗费在进位处理上,由于我们使用10进制方式,结果导致计算长度len很大。为了减少计算时间,做一点改动,将进位改为10^10,这样进位长度大大缩减,由于10^10超过int的范围,我们使用__int64(注意,两个下划线)。提交到杭州电子科技大学的ACM判题系统显示耗时1720MS,如果想进一步减少时间可以通过扩大基数来实现,不过原理就类似了。


4856

被折叠的 条评论
为什么被折叠?



