【发布时间】:2014-09-23 15:07:00
【问题描述】:
假设我们有一个非常大的阶乘,例如 (10^7)!,有没有一种有效的方法来计算它的 exact 位数? (Wolfram alpha 结果显示 (10^7)!有 65,657060 位)
当然,我不能使用将值逐一乘以的幼稚实现,因为评估结果太慢了。
我认为这个问题的解决方案可能以两种方式结束
- 如何在不计算阶乘的情况下找到阶乘的数字
- 如何更有效地计算阶乘(最好使用 BigInteger 或 BigDecimal)
我更喜欢 1. 而不是 2. 因为我只想知道阶乘的位数。 有什么建议吗?
【问题讨论】:
-
我认为这更像是一道数学题,而不是编程题。我没有尝试过,但通过谷歌快速搜索发现:mathforum.org/library/drmath/view/68245.html