鱼C论坛

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

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

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

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

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

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

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

一星答案:

  1. def tickets(people):
  2.     n25 = n50 = n100 = 0
  3.     for e in people:
  4.         if e == 25:
  5.             n25 += 1
  6.         elif e == 50:
  7.             n25 -= 1
  8.             n50 += 1
  9.         elif e == 100 and n50 > 0:
  10.             n25 -= 1
  11.             n50 -= 1
  12.         elif e == 100 and n50 == 0:
  13.             n25 -= 3
  14.         if n25 < 0 or n50 < 0:
  15.             return 'no'
  16.     return 'yes'

  17. print(tickets([25, 25, 50]))  # yes
  18. print(tickets([50, 50, 100]))  # no
复制代码


二星答案:

  1. # 用列表来存储收入的 25和50 两种面额,找零时删除,当列表不足够找零时break
  2. def tickets(p):
  3.     """传入排队人员钞票面值列表 p(25,50,100 三种面值),判断能否成功找零"""
  4.     saves = []
  5.     for i in p:
  6.         if i == 25:
  7.             saves.append(i)
  8.         elif i == 50 and saves.count(25):
  9.             saves.remove(25)
  10.             saves.append(50)
  11.         elif i == 100 and saves.count(50) and saves.count(25):
  12.             saves.remove(50)
  13.             saves.remove(25)
  14.         elif i == 100 and saves.count(25) >= 3:
  15.             for j in range(3):
  16.                 saves.remove(25)
  17.         else:
  18.             break
  19.     else:
  20.         print('yes')
  21.         return
  22.     print('no')
复制代码



三星答案:

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


基础语法:



算法讲解:





评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 15:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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