找零钱问题
币值 | 数量 |
---|---|
1 | |
5 | |
10 | |
50 |
贪心算法
在对问题求解时,在特定规则下,总是做出在
当前看来是最好的选择
运算符 | 符号表示 |
---|---|
/ | 除法运算 |
% | 取余运算 |
// | 取整数运算 |
#运算案例
# 请尝试运行以下代码
print(5//2)
print(6//4)
print(3//2)
目标:找47元 纸币:1、5、10、20、50
规则:使找的零钱的纸币张数最少
#定义要找的目标价值
target=47
#定义币值列表
money=[50,20,10,5,1]
#需要的数量列表
number=[0,0,0,0,0]
#循环,进行计算
for i in range(5):
#计算需要多少张当前面值
number[i]=target//money[i]
#计算还剩下多少钱
target=target%money[i]
#打印结果
for i in range(5):
print("需要",money[i],"元的纸币",number[i],"张")
你有很多张88元、44元、22元、1元、1元的纸币,输入个要支付的钱数,请你输出最少要用多少张纸币才能完成支付,并输出此时每种纸币需要用多少张。