4184: 约瑟夫环
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌只剩1个人。请问最后的人的编号是多少?
样例输入 复制
30
9
1
样例输出 复制
21
提示
n=int(input())
m=int(input())
k=int(input())
ls=list(range(1,n+1))
i=k
while len(ls) > 1:
n = ls.pop(0)
if i<m:
ls.append(n)
i+=1
if i>m:
i=1
print(ls[0])