【发布时间】:2019-10-13 03:05:04
【问题描述】:
我正在尝试获得第一个 num 个阶乘。
例如,如果 num 是 6,那么我们需要前 6 个阶乘:1,1,2,6,24,120
以下是我目前的解决方案。它总是返回一个额外的阶乘。因此,如果 num 为 6,则返回 7 个阶乘。
def factorials_rec(num)
return [1] if num == 1
arr = factorials_rec(num-1)
arr << num * arr.last
end
结果 [1, 1, 2, 6, 24, 120, 720]
想要的结果 [1, 1, 2, 6, 24, 120]
我只想要 6 个阶乘,但要返回 7 个。
使用递归,如何调整此函数以返回所需数量的阶乘。
我试过了
base case = return [1,1] if num == 2, etc..
arr << num * arr.last unless arr.length >= num, etc...
【问题讨论】: