Python Coin change SO CLOSE
Robię problem z wymianą monet. Skończyłem z tym, że wypisuje ile monet potrzebuję, aby dokonać jak najmniejszej zmiany, ale jak mogę zmienić program, aby wydrukował te monety?
Oto próbkaI/O
:
wkład:coin_change(48, [1, 5, 10, 25, 50])
wydajność:[6, [25, 10, 10, 1, 1, 1]]
Obecnie mój kod zwraca tylko6
.
nawiasem mówiąc, należy to zrobić tylko z rekurencją. żadne pętle nie są dozwolone
Kod:
def change(C, V):
def min_coins(i, aC):
if aC == 0:
return 0
elif i == -1 or aC < 0:
return float('inf')
else:
return min(min_coins(i-1, aC), 1 + min_coins(i, aC-V[i]))
return min_coins(len(V)-1, C)