In [1]:
using Memoize
coins = 1:99

@memoize function count(n, m)
    if n < 0 || m <= 0
        return 0
    elseif n == 0
        return 1
    end
 
    return count( n, m - 1 ) + count( n - coins[m], m )
end

count(100, length(coins))