关于竞赛人数问题,分别考虑报名时间

img

img


class Group(object):
  def __init__(self):
    self.in_member=0
    self.free_member=3
    self.names=[]
if __name__=='__main__':
  group=Group()
  fm=group.free_member
  im=group.in_member

因为不仅需要考虑有几人报名,还包括次数差别,如果不是同时报名,就需要检测行,我实在不太理解

class Group():
    def __init__(self, capacity=3, member=[]):
        self.capacity=capacity
        self.member=member

    def register(self, names):
        if self.capacity < len(names):
            print("错误:学生竞赛小组空余名额:{},但是要参加的学生人数为{}".format(self.capacity, len(names)))
        else:
            self.member += names
            self.capacity -= len(names)
            print("参加成功")
        print("当前学习小组空余人数为:{}".format(self.capacity))
        if self.member: print("包括的学生有:{}".format(' '.join(self.member)))

a = Group()
n = int(input())
for _ in range(n):
    names = input().split()
    a.register(names)

运行结果:

4
张三
参加成功
当前学习小组空余人数为:2
包括的学生有:张三
李四
参加成功
当前学习小组空余人数为:1
包括的学生有:张三 李四
王五
参加成功
当前学习小组空余人数为:0
包括的学生有:张三 李四 王五
赵六
错误:学生竞赛小组空余名额:0,但是要参加的学生人数为1
当前学习小组空余人数为:0
包括的学生有:张三 李四 王五