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