list = [x for x in range(1,102)] # 默认101人报数
s = len(list) # 总人数,也是剩下未报3的人员数
list_1 = [] # 已报数3的人员列表,初始为空
def bs():
def xh():
global list
global s
for i in range(1,s+1):
if i%3 == 0:
list_1.append(list[i-1])
if s%3 == 1:
list.insert(0,list[-1])
list.pop()
if s%3 == 2:
list.insert(0,list[-1])
list.insert(0,list[-2])
list.pop()
list.pop()
for i in list_1:
if i in list:
list.remove(i)
s = len(list) # 每次循环剩下未报3的人员数
return s ,list_1
return xh
bsy = bs()
while s:
bsy()
if s <3:
#最后只剩两个人员报数时,list[0],list[1]循环取第一个。
list_1.append(list[0])
list.pop(0)
break
print(len(list_1)) # 已报数3的总人员数
print(list_1) # 已报数3的人员列表 (按先后顺序)
print(list) # 最后一员及其编号
# 欢迎使用Markdown编辑器