In [12]:
coins = [1, 2, 5, 10, 20, 50, 100, 200]
sum_ = 5
debug = True
counts = [0] * (sum_ + 1)
counts[0] = 1
for coin in coins:
for i in range(coin, sum_ + 1):
if debug is True:
print('coin {} at {} with sum {} , add {}'.format(coin, i, counts[i], counts[i-coin]))
counts[i] += counts[i - coin]
if debug:
print('')
if debug is True:
print(counts)
else:
print(counts[-1])
In [ ]: