-3

我在开始计算 1 和 n 之间的阶乘数时有点卡住了。一个简单的解决方案是只使用阶乘表。

例如,在 1 到 362,880 之间有 1!、2!、3! ... 8!和 9!。然后程序会输出 1! 之间有 8 个阶乘。和 9!。

==

我还在研究一个单独的布尔函数,该函数确定数字 X 是否为阶乘。例如,如果 X 是 5,040,它将返回 True,但如果它是 5,033,它将返回 False。这必须使用计算,而不是列表。有人能指出我正确的方向吗?

...

这里肯定需要递归,对吧?

4

2 回答 2

0

您可以对两者使用相同的算法:考虑伪代码

i = 1
calc = 1
while calc < X
   i = i + 1
   calc = calc * i

 // is X a factorial number ?
if calc == X
   true
else
   false

 //How many between 1 and X ?
  i - 1
于 2013-02-24T23:57:42.240 回答
0

如果范围较大,也许使用斯特林近似来获得最近的阶乘(数值求解 n!= 值)是一个更好的主意。

于 2013-02-25T01:38:37.347 回答