Я пытаюсь получить первые 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...