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])