"""給你 k 種面值的硬幣,面值分別為 c1, c2 ... ck,每種硬幣的數量無限,再給乙個總金額 amount,問你最少需要幾枚硬幣湊出這個金額,如果不可能湊出,演算法返回 -1 。演算法的函式簽名如下:
"""coins = [1, 2, 5]
money = 11
def coin_change(coin_list, amount):
if amount == 0:
return 0
if amount<0:
return -1
else:
min = coin_change(coin_list, amount-coin_list[0]) + 1
for coin in coin_list[1:]:
res = coin_change(coin_list, amount - coin) + 1
if res < min and res != 0:
min = res
return min
print(coin_change(coins, money))
硬幣找錢問題
設有6種不同面值的硬幣,各硬幣的面值分別為5分 1角 2角 5角 1元和2元。現在要用這些面值的硬幣來購物和找錢。購物時可以使用的各種面值的硬幣個數存於陣列coins 1 6 中,假設商店裡各面值的硬幣有足夠多。對於給定的付款金額,計算使用硬幣個數最少的交易方案。輸入資料的每一行有6個整數和乙個有2...
Problem 找錢問題
time limit 1 sec memory limit 64 mb submit 12397 solved 3423 買火車票時經常會碰到找錢問題。售票員手中有50 20 10 5 1元的錢幣,你知道怎麼找錢才能使找回的零錢張數最少嗎?多組測試資料,輸入需要找錢的錢數 輸出按下面格式 第一行輸出...
硬幣找錢問題
硬幣找錢問題 time limit 1000ms memory limit 65536k total submit 3 accepted 1 description 設有6 種不同面值的硬幣,各硬幣的面值分別為5 分,1 角,2 角,5 角,1 元,2元。現要用這些面值的硬幣來購物和找錢。購物時可以...