首页 > 编程语言 > 详细

python 分而治之 找零数量 最小组合

时间:2020-06-02 16:38:46      阅读:46      评论:0      收藏:0      [点我收藏+]
def dc(num,dic):
    # 分而治之,最少的钱数组合
    kind = [100,50,20,10,5,1] # 钱的面额
    if num == 0:
        return dic
    else:
        for k in kind:
            if num>=k:
                num = num - k
                if k in dic:
                    dic[k]+=1
                else:
                    dic[k] = 1
                return dc(num,dic)

dic = dc(63,{})
print(dic)

 分析:找零钱的时候,先找零最大面值的钱,比如63块钱,先找零50,剩余13,对于剩余的零钱,再次比对,再找出最大面值的钱10,剩3块,以此类推。

python 分而治之 找零数量 最小组合

原文:https://www.cnblogs.com/wztshine/p/13031339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!