题目:如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元
使用贪心算法非常简洁,从最大硬币面额开始算起,就会使用最少硬币
t=[1,3,5] #硬币面额
def change(t,n):
m=[0 for _ in range(len(t))] #创建一个跟硬币面额数一致的数组,用来存储对应的面额硬币的个数,初始为0
count=0
t.sort(reverse=True) #将硬币面额从大到下拍好序
for i,money in enumerate(t):
m[i] = n // money
n = n % money
for j in m:
count+=j
return count
print(change(t,11))
使用贪心算法解决最小硬币找零问题,
文章介绍了一种利用贪心算法解决如何用最少的硬币凑足特定金额的问题,具体例子是11元。首先按面额从大到小排序硬币(5元,3元,1元),然后依次用最大面额的硬币尽可能多的抵消金额,直到金额为0。这种方法可以得到最少的硬币数量。
4546

被折叠的 条评论
为什么被折叠?



