其他分享
首页 > 其他分享> > 贪心法解决最少面值币数目

贪心法解决最少面值币数目

作者:互联网

题目描述:给定一个面值V,给定无限供应的面值币={ 1, 2, 5, 10, 20, 50, 100, 500, 1000},求最少的面值币数目

 

def find_min(v):
    deno = [1, 2, 5, 10, 20, 50,
            100, 500, 1000]
    n=len(deno)
    ans=[]
    i=n-1
    while(i>=0):
        while(v>=deno[i]):
            v-=deno[i]
            ans.append(deno[i])
        i-=1

    for i in range(len(ans)):
        print(ans[i],end=' ')

if __name__=='__main__':
    n=93
    find_min(n)

先尽最大面值的挑选,然后向面值小的方向收集,但这种贪心的方法可能存在问题,如V=11:{9,6,5,1}的答案。

标签:__,min,最少,deno,ans,面值,find,贪心
来源: https://www.cnblogs.com/cwfeng/p/14822708.html