鱼C论坛

 找回密码
 立即注册
查看: 2613|回复: 0

[技术交流] 0020-编程打卡:实现不智能的找钱系统

[复制链接]
发表于 2022-9-13 16:16:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2022-9-13 16:29 编辑

001.png
002.png
003.png
004.png

一星答案:
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([25, 25, 50]))  # yes
print(tickets([50, 50, 100]))  # 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')


三星答案:

游客,如果您要查看本帖隐藏内容请回复


基础语法:



算法讲解:





评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
bool想学C + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表