python中贪心算法的钱币找零的解法

一 .钱币找零问题

target = int(input('请输入需要找零的金额: '))  # 找零钱目标数
money = [100, 50, 20, 10, 5, 2, 1]  # 纸币种类,需要有有个小小的排序,从小到大的顺序

number = [0, 0, 0, 0, 0, 0, 0]  # 纸币种类的张数记录

for i in range(len(money)):  # 排循环,从最大面值开始考虑  0 1 2 3 4 5 6
    number[i] = target // money[i]  # 取整,算出当前面值可以找的最大张数
    target = target % money[i]  # 取余,算出当前面值找零后剩下的钱数

for i in range(len(money)):
    print(money[i], '元的张数为:', number[i], '张')

print('需要的纸币的张数', number)



结果:
请输入需要找零的金额: 32
100 元的张数为: 050 元的张数为: 020 元的张数为: 110 元的张数为: 15 元的张数为: 02 元的张数为: 11 元的张数为: 0 张
需要的纸币的张数 [0, 0, 1, 1, 0, 1, 0]

猜你喜欢

转载自blog.csdn.net/m0_74459049/article/details/133816800
今日推荐