浙大版python程序设计上第四章的一道题,开始想到的是两层循环嵌套,但看到下面这篇文章时,将脑海里另一种比较模糊的简便方法具象化了。【Python笔记】Python/C++解决约瑟夫环问题_python 约瑟夫环是一个很有意思的算法,已知有41个人围坐在一张圆桌周围,从第-CSDN博客
l=list(range(1,31)) #列出在场上的所有人编号
p=[] #离开的人的编号列表,开始时为空
index=0 #遍历在场编号列表所使用的下标
for i in range(10): #踢出10个人,即循环10次
#print(l)#测试用
index=(index+8)%len(l)
#每次踢出后因为后续pop操作,index值不变但直接指向了下一人
#场上人数一直变化,所以index上限一直变化,需要更新index再上限范围内防止错数
p.append(l.pop(index)) #更新被踢出的人的名单
print(p)