贪心法解决最少面值币数目
作者:互联网
题目描述:给定一个面值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