python演算法之找錢問題

2022-09-05 10:54:13 字數 575 閱讀 4915

"""

給你 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元。現要用這些面值的硬幣來購物和找錢。購物時可以...