0020-编程打卡:实现不智能的找钱系统
本帖最后由 不二如是 于 2022-9-13 16:29 编辑一星答案:
def tickets(people):
n25 = n50 = n100 = 0
for e in people:
if e == 25:
n25 += 1
elif e == 50:
n25 -= 1
n50 += 1
elif e == 100 and n50 > 0:
n25 -= 1
n50 -= 1
elif e == 100 and n50 == 0:
n25 -= 3
if n25 < 0 or n50 < 0:
return 'no'
return 'yes'
print(tickets())# yes
print(tickets())# no
二星答案:
# 用列表来存储收入的 25和50 两种面额,找零时删除,当列表不足够找零时break
def tickets(p):
"""传入排队人员钞票面值列表 p(25,50,100 三种面值),判断能否成功找零"""
saves = []
for i in p:
if i == 25:
saves.append(i)
elif i == 50 and saves.count(25):
saves.remove(25)
saves.append(50)
elif i == 100 and saves.count(50) and saves.count(25):
saves.remove(50)
saves.remove(25)
elif i == 100 and saves.count(25) >= 3:
for j in range(3):
saves.remove(25)
else:
break
else:
print('yes')
return
print('no')
三星答案:
**** Hidden Message *****
基础语法:
https://www.bilibili.com/video/BV1c4411e77t
算法讲解:
https://www.bilibili.com/video/BV1HT4y1K7DY
页:
[1]