target = 200
coins = [1,2,5,10,20,50,100,200]
ways = [1]+[0]*target
for coin in coins:
for i in range(coin,target+1):
ways[i]+=ways[i-coin]
print(ways[target])
У меня нет проблем с пониманием того, что буквально делает код, но я не могу понять, ПОЧЕМУ он работает.
Кто-нибудь может помочь?
Я искал хорошее решение проблемы внесения изменений и нашел этот код (Python):
[code]target = 200 coins = [1,2,5,10,20,50,100,200] ways = [1]+[0]*target for coin in coins: for i in range(coin,target+1): ways[i]+=ways[i-coin] print(ways[target]) [/code]
У меня нет проблем с пониманием того, что буквально делает код, но я не могу понять, ПОЧЕМУ он работает. Кто-нибудь может помочь?