贪心算法
value = [1, 5, 10, 25] #零钱分类
ans = [0] * len(value) #根据硬币种类创建数组
print(ans)
n = len(value)
money = int(input())
for j in range(0,n):
i = n - j - 1 # 从最大金额开始(j从0开始,i=n-j-1 刚还对应value[i]最后一个元素,即最大面额的货币)
ans[i] = money // value[i] #用面值最大的硬币除,不能除就是0
money = money - ans[i] * value[i] # 余下待找的零钱为money - ans[i] * value[i].
# ans[i]为value数组第i位货币对应的数量,value[i]为第i位置对应的货币面额
for j in range(0,n):
i = n - j - 1
print(value[i],'分硬币数',ans[i])
[0, 0, 0, 0]
63
25 分硬币数 2
10 分硬币数 1
5 分硬币数 0
1 分硬币数 3
贪心解法2
递归解法
# 递归解决找零问题v1。
import time
start =
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)