Python計算需要最少數(shù)量

題目:用面額1,2,5面值的錢幣,以最少的張數(shù)湊齊13元,需要多少張紙幣?

思路1:依次計算從1-13張紙幣,每種情況下對應(yīng)的幣值都有什么,對于最先滿足13結(jié)果的數(shù)目,就是需要的紙幣。

話不多說,看代碼:

def check(price, denoms):
    sums = set() 
    for number in range(1, price+1):
        sums = {s+d for s in sums for d in denoms} or set(denoms)
        if price in sums:
            return number
if __name__='__main__':
    print(check(13, [1, 2, 5]))
#結(jié)果是:4

思路2:依次計算從1-13元,計算出所有幣值需要的最小數(shù)量。

看代碼:

def check(price, den):
    coins_need = [0 for _ in range(min(den))]
    for money in range(min(den), price+1):
        min_coins = money
        for coin in [d for d in den if d <= money]:
            if coins_need[money-coin]==0 and money not in den:
                min_coins = 0
                break
            else:
                min_coins = min(min_coins, coins_need[money-coin]+1)
        coins_need.append(min_coins)
    return coins_need[-1] if coins_need[-1] else None
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)鍵概念: 貨幣——固定充當(dāng)一般等價物的商品叫作貨幣。另外一個定義是:作為價值尺度并因而以自身或通過代表作為流通手...
    巡夜人閱讀 2,841評論 0 7
  • #本文參加‘青春’大賽,本人保證本文為本人原創(chuàng),如有問題則與主辦方無關(guān),自愿放棄評優(yōu)評獎資格 姓名:晉媛媛 學(xué)校:...
    何處繁華笙歌落_4259閱讀 559評論 3 29
  • 春夏已然碎落 不堪尋找 秋來心爽 收獲豐實黃彩 欣然逸致 撿拾記憶碎片 夾入生命的書頁 封存心扉 拂去喧嘩浮躁 贏...
    梅蕊新說閱讀 514評論 6 29
  • 20160109 思維導(dǎo)圖——2016年1月核心目標(biāo)之一完成. 1月份三個核心目標(biāo)之一是:思維導(dǎo)圖。達(dá)成目標(biāo)...
    羽青閱讀 2,964評論 0 3

友情鏈接更多精彩內(nèi)容