【问题标题】:Find the x amount of factorials starting from 0 using recursion. 5 == [1,1,2,6,24]使用递归查找从 0 开始的 x 个阶乘。 5 == [1,1,2,6,24]
【发布时间】: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...

【问题讨论】:

    标签: ruby recursion


    【解决方案1】:

    尝试将最后一行修改为:

    arr << (num-1) * arr.last
    

    【讨论】:

      猜你喜欢
      • 2021-12-06
      • 1970-01-01
      • 2021-09-02
      • 2016-01-28
      • 1970-01-01
      • 2015-04-19
      • 2019-07-24
      • 1970-01-01
      • 2013-09-18
      相关资源
      最近更新 更多