python - Python数组硬币排序
问题描述
我正在尝试使用python中的数组来做一个硬币排序python程序,想知道最有效的方法是什么......这是我到目前为止所拥有的,任何帮助将不胜感激。
values = [50,20,10,5,1] #values of coins
amount = int(input("how much change"))
remaining = amount
i = 0
fifty = 0
twenty = 0
ten = 0
five = 0
one = 0
print(remaining)
print("##########")
# while unsorted values remain:
# while len(values) >0:
while remaining >0:
print(remaining)
if remaining >= values[0]:
remaining = remaining - values[0]
fifty += 1
# remaining = remaining - 50
if remaining >= 20 and remaining <50:
remaining = remaining - values[1]
twenty += 1
# remaining = remaining - 20
if remaining >= 10 and remaining <20:
remaining = remaining - values[2]
ten += 1
# remaining = remaining - 10
if remaining >= 5 and remaining <10:
remaining = remaining - values[3]
five += 1
# remaining = remaining - 5
if remaining >= 1 and remaining <5:
remaining = remaining - values[4]
one += 1
# remaining = remaining - 1
if remaining ==0:
print("end loop")
break
print("#########")
print("number of 50 coins = " + str(fifty))
print("number of 20 coins = " + str(twenty))
print("number of 10 coins = " + str(ten))
print("number of 5 coins = " + str(five))
print("number of 1p coins = " + str(one))
print("end")
#i=i+1
我想有一种有效的方法来做到这一点,我教计算机科学。谢谢
解决方案
您可以使用//
and%
建立一个计数列表——对于每个硬币值,整数除法给出使用的硬币数量,然后余数 ( remaining % v
) 是新的剩余计数。然后循环打印。if count
(如果要显示零,请删除条件。)
values = [50,20,10,5,1] #values of coins
amount = int(input("how much change "))
remaining = amount
counts = []
for v in values:
counts.append(remaining // v)
remaining %= v
for count, value in zip(counts, values):
if count:
print(f"number of {value} coins = {count}")
print("end")
或者,如果您对存储输出不感兴趣,而只是打印它,那么您不需要构建列表:
values = [50,20,10,5,1] #values of coins
amount = int(input("how much change "))
remaining = amount
for value in values:
print(f"number of {value} coins = {remaining // value}")
remaining %= value
print("end")
推荐阅读
- android - 找到“API 密钥”
- c - 减去没有二进制补码的有符号二进制数
- haskell - Haskell:给定一个数字列表和一个数字 k,返回列表中的任何两个数字加起来是否为 k
- python - 尝试在循环中获取函数的最小值,同时将值从列表 A 传输到列表 B
- oauth - wso2 身份服务器 5.4 Google 作为 IdP
- java - 如何在变量中节省时间
- jsp - 如何将表中复选框的值存储到数组并传递到另一个jsp页面?
- javascript - 有没有办法修改从 material-ui 生成的标签?
- powershell - 可能是一个错误。PowerShell get-team 搜索 $filter=resourceProvisioningOptions/Any(x:x eq 'Team')
- go - 我们可以在不“手动”构造的情况下在数组和结构之间进行转换吗?