def find_last(n,s):
flag = 0 #是否能被3整除的标记
for i in range(n): #执行n次扫描,(正常情况会提前结束)
number=0 #标记留下来的人数
for j in range(n):
if s[j]=='Y' :
number+=1
last=j #标记最后一位为‘Y’的在原数组中位置
if number==1 : #只有留下最后一个人即结束
break
"""对原数组中(标记为‘Y’且报数为3)的人改变标记为‘N’"""
for k in range(n):
if s[k]=='Y' :
flag+=1
if flag%3==0 :
s[k]='N'
return last
s = []
n = int(input("有多少位人围成一个圈?"))
for i in range(n):
s.append('Y')
print(s)#打印原始列表
last=find_last(n,s)
print(s)#打印只剩下一个的列表
print("最后留下的是第%d位."%(last+1))