假設(shè)有4種幣值,面值分別為二角五分,一角,五分和一分。現(xiàn)在要找給某顧客六角三分錢。怎樣找零錢才能給顧客的硬幣個(gè)數(shù)最少?
【問(wèn)題解析】
找零錢的基本思路是:每次都選擇面值不超過(guò)需要找給顧客的錢的最大面值的貨幣。
(1) 選取不超過(guò)六角三分錢的最大面值硬幣二角五分,剩三角八分。
(2)選取不超過(guò)三角八分的最大面值硬幣二角五分,剩一角三分。
(3)選取不超過(guò)一角三分的最大面值硬幣一角,剩三分。
(4)選取不超過(guò)三分的最大面值硬幣一分,剩二分。
money = [25, 10, 5, 1] # 硬幣種類
def coin(e):
print("顧客給了:" + str(e) + "分")
n = [0, 0, 0, 0] # 存儲(chǔ)硬幣種類次數(shù)
while e > 0:
if e >= money[0]:
e = e - money[0]
n[0] = n[0] + 1
elif money[1] <= e < money[0]:
e = e - money[1]
n[1] = n[1] + 1
elif money[2] <= e < money[1]:
e = e - money[2]
n[2] = n[2] + 1
elif money[3] <= e < money[2]:
e = e - money[3]
n[3] = n[3] + 1
print("兩角五分" + str(n[0]) + "個(gè)")
print("一角" + str(n[1]) + "個(gè)")
print("五分" + str(n[2]) + "個(gè)")
print("一分" + str(n[3]) + "個(gè)")
s = n[0] + n[1] + n[2] + n[3]
print("所以最少找零個(gè)數(shù)是:" + str(s))
coin(63)

ltb6w2017(vx).jpg