我使用以下代碼計算變化在Python最小造幣:變化計算在Python
def change(am):
totalcoins = []
for coin in dstock:
while coin[0] <= am and coin[1] > 0:
totalcoins.append(coin[0])
am = round(am - coin[0], 2)
coin[1] = coin[1] - 1
return totalcoins
dstock是從CSV文件創建的變量。這裏是dstock的打印:我想通了如何更新庫存水平以及如何計算的變化
[[1.0, 100], [0.5, 100], [0.2, 100], [0.1, 100], [0.05, 100], [0.02, 100], [0.01, 100]]
Explained: [denomination,stock level] -- at present there are 100 of each.
但我不能弄清楚如何,如果沒有產生錯誤足夠的股票來產生變化。
例如:
Stock = [[1.0, 0], [0.5, 0], [0.2, 0], [0.1, 0], [0.05, 0], [0.02, 0], [0.01, 2]]
change = 0.03
如果股票<變化 打印(錯誤:沒有足夠的庫存發生變化)
以此開始:'sum(a * b for(a,b)in Stock)' –
對不起,我對此很新。這會做什麼? – JAM
'a * b for a(a,b)in Stock'會將子列表放在一起(1.0 * 0,0.01 * 2等),sum將把這些值加在一起。 –