Зачем стандартной библиотеке нужен факторный метод, если для этой цели есть встроенный итератор? Это называется upto
.
Нет, вам не нужно использовать рекурсию, как показывают все эти другие ответы.
def fact(n)
n == 0 ? 1 : n * fact(n - 1)
end
Скорее, встроенный итератор upto можно использовать для вычисления факториалов:
factorial = 1
1.upto(10) {|x| factorial *= x }
factorial
=> 3628800