1. 程式人生 > >【演算法 in python | DP】紙幣面額拼湊

【演算法 in python | 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]