擂台:计算阶乘的 18 位非零尾数

xstring xstring 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

阶乘不用解释,阶乘的 18 位非零尾数需要简单解释一下。阶乘的十进制结果中末尾都会有很多个数字 0 (5以下的除外),去掉这些连续的 0 之后最后 18 位数字即是这里所说的 18 位非零尾数。之所以称这为“非零”,是因为最后一个数字肯定不是 0。举两个例子,10! = 3,628,800,其 18 位非零尾数为 36,288;24! = 620,448,401,733,239,439,360,000,其 18 位非零尾数为 044,840,173,323,943,936

目前我写的最新版本,对于 10,000 位的整数,在我的机器上(P4 1.8A + 256M, 超频到 2.4)可以在 1 秒内计算其阶乘的 18 位非零尾数。现在对于我使用的算法来讲,速度已经算是达到极至了。故来此设立擂台。

程序中虽然还有可以再进行优化的地方,但都不值得去做了,因为对速度的提高根本起不了多大的作用。

相关程序和更多的介绍可以访问 http://www.ysiw.info/T18/T18.html

欢迎高手打擂,欢迎有兴趣的人参与讨论。

能给出更好的算法者,我可以再送 2000 分。
...全文
评论 79
收藏 已收藏
分享
返回顶部
xstring
数据结构与算法 33,027 成员 35,334 内容