Anonymous user
Count the coins: Difference between revisions
→{{header|Ruby}}
(→{{header|Ada}}: Added Ada version) |
|||
Line 823:
'''Recursive, with caching'''
<lang ruby>def make_change(
@cache = {}▼
@coins = coins
do_count(
end
def do_count(n, m)
if @cache.has_key?([n,m])▼
▲ elsif n < 0 || m < 0
0
else
@cache
end
end
p make_change( 1_00, [1,5,10,25])
▲ p make_change(1000_00, [1,5,10,25,50,100])
outputs
<pre>242
'''Iterative'''
<lang ruby>def make_change2(
n, m =
table = Array.new(n+1){|i| Array.new(m, i.zero? ? 1 : nil)}
for i in 1..n
for j in 0...m
▲ table = Array.new(n+1) {|i| Array.new(m+1)}
table[
▲ (j-1 < 0 ? 0 : table[i][j-1])
end
end
table[
end
p make_change2(
p make_change2(1000_00, [1,5,10,25,50,100])</lang>
outputs
|