问题:
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
分析:
最后剩下一个,删除n-1次,当m<n-1时,如果k等于3(k代表计数),删除s[i]
n=int(input("请输入总人数"))
j=0
s=[]
k=0
m=0
i=0
for j in range(1,n+1):
s.append(j)
while m<n-1:
if s[i]!=0:
k=k+1
if(k==3):
s[i]=0
k=0
m=m+1
i=i+1
if(i==n):
i=0
i=0
for i in range(n):
if s[i]!=0:
print(s[i])
结果:
请输入总人数 23
8