【算法】紙幣面額拼湊DP

給你六種面額1、5、10、20、50、100元的紙幣,假設每種幣值的數量都足夠多,編寫程序求組成N元(N爲0-10000的非負整數)的不同組合的個數。

def fun(n):
    money = [1,5,10,20,50,100]
    dp = [0 for i in range(n+1)] # dp[i]指n爲i時的拼湊方法數
    dp[0] = 1 #當n爲0是,方法數爲1
    for item in money:
        for i in range(1,n+1):
            if i >= item:
                dp[i] += dp[i-item]
    return dp[n]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章