Fork me on GitHub

贪心法--零钱找零问题

问题描述:现在有2元、1元、0.5元、0.2元、0.1元、0.05元的纸币,如何才能使得找零的的张数最小

基本思路;将纸币从大到小排序,尽可能地先找大额的;

coins = [2,1,0.5,0.2,0.1,0.05]
money = 5.65
def coinChange(coins,money):
    count = 0
    i = 0
    res=[]
    while i<len(coins):
        if money>=coins[i]:
            n=int(money/coins[i])
            for _ in range(n):
                res.append(coins[i])
            count+=n
            change=n*coins[i]
            money=money-change
        i+=1
    return count,res

posted @ 2019-11-24 23:54  西西嘛呦  阅读(467)  评论(0编辑  收藏  举报