python 货币找零

python 货币找零,第1张

贪心算法

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 =

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/740633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存