$ O(n^n) $
In [13]:
def get_combinations(amount, denominations):
combinations = 0
for d in denominations:
if amount - d > 0:
combinations += get_combinations(amount - d, denominations)
elif amount - d == 0:
combinations += 1
denominations = denominations[1:]
return combinations
In [14]:
get_combinations(4, [1, 2, 3])
Out[14]:
In [17]:
get_combinations(10, [5, 2, 3])
Out[17]:
In [ ]: