qq_34033296
qq_34033296
采纳率0%
2016-04-28 16:42 阅读 2.5k

求助!求如何秒杀十万的阶乘?

要求是在一秒钟以内计算出十万的阶乘。我试了直接累乘,需要268秒。尝试完全的因式分解,将其分解为一系列素数的次方相乘,在其中第一项为2的99998次方,用二分乘法需要0.2秒,不可能做到一秒内计算出结果。我觉得我是思路问题,求助如何解秒杀十万的阶乘?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-28 19:25

    查表法。将0~10万每1000的阶乘预先算好了记录下来。只需要100个数据,几乎不要什么存储,就可以保证10万以内的阶乘计算都是秒杀。即便计算10万以上,也可以明显提速。
    这个方法其实用在一些科学计算器上,以前我有个卡西欧计算器,就缓存了30和70的阶乘,所以计算70是秒出,计算69反倒有些顿。

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-28 19:26

    一秒钟以内计算出十万的阶乘。我试了直接累乘,需要268秒,这也太夸张了,你用的什么语言?
    windows xp自带的计算器,就是呆算实现的,10万的阶乘也就几秒钟,甚至xp x64版,10万的阶乘还能秒出(x64的优势在这里发挥出来了)。
    而且你还可以用多线程,这特别适合并行计算。

    点赞 评论 复制链接分享

相关推荐