0
点赞
收藏
分享

微信扫一扫

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

梦想家们 2022-02-01 阅读 53
#这一段的目的是把n转化为一个列表,每个人用列表中的一个数字来标记
L=[]

n=int(input('请输入人数:\n'))
for i in range(1,n+1):
L.append(i)
#设计count为要进行计数的数字,如果能被3整除,则把这个数字拿出来
#拿出来的数字统一放到一个列表L1里,方便后续把L1中的数字和L对比,从L中拿出来
count=0
L1=[]
def baoshu(L,count):
#如果L只有1个,把它打印出来即可。否则就要用递归
if len(L)==1:
for i in L:
print(i)
else:
for i in L:
count=count+1

if (count)%3==0:
L1.append(i)

count=count%3

for i in L1:
L.remove(i)
for i in L1:
L1.clear()
#此时L已经经过了筛选,变成了新的L,递归执行,直到L只有一个为止。打印出即可
baoshu(L,count)

baoshu(L,0)



举报

相关推荐

0 条评论