Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Memoized
  attr_reader :factorial_memo
  def initialize
    @factorial_memo = {}
  end

  def factorial(n)
    puts n
    @factorial_memo[n] ||= if n < 1
      1
    else
      n * factorial(n-1)
    end
  end
end

memoized = Memoized.new

5.downto(1) { |i| puts "\t#{memoized.factorial(i)}" }

puts memoized.factorial_memo.inspect