公司聚会上,N名员工围成一圈,按1—N顺序编号(要求N<=40)。
然后从队头开始1,2,3报数,数3的出列,剩下的员工再从头开始1,2,3报数……直到剩下最后一名员工时,
这员工就是本聚会的“幸运儿”。“幸运儿”即可拿走1000元红包,问这名员工原来的位置是多少?
示例输入1:
10
示例输出1:
4
示例输入2:
20
示例输出2:
20
cout=int(input("请输入:")) # N
alen = cout
aLi = [1 for i in range(cout+1)] #//1表示未出列,0表示出列
aLi[0]=0
num=0 #报数计数器 1,2,3
baodao=3 #数到3
i=0
while cout>0:
i += 1
if i==alen+1:
i = 1
if aLi[i] != 0: #//当前人未出列 报数计数器+1
num += 1
if num==baodao:
aLi[i] = 0
cout -= 1
num = 0
print(i)