1059: 约瑟夫环问题——链表

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:63 解决:32

题目描述

n个人排成一圈,从某个人开始,按顺时针方向从1开始依次编号。从编号为1的人开始顺时针“1,2,3,......,m,1,2,3,......”报数,报到m(m>1)的人推出圈子。这样不断循环下去,圈子里的人奖不不断减少。由于人数是有限的(n个),因此最终只会剩下1个人,请求出最终剩余的编号是多少。要求用链表解决问题。

输入

2个数据,分别是总人数n,出圈报数m

输出

1个数据,最终剩余的编号

样例输入 复制

1000
8

样例输出 复制

185

提示

新建链表:

a = []
for i in range(n - 1):
    a.append([i + 1, i + 1])
a.append([n, 0])
head = 0