4183: 猴子选大王
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
有41只猴子围成一圈并从第1只猴子开始编号,然后从猴群中选出一只猴子为大王。选大王的方法是:从第1只猴子开始报数,每轮从1报到3,凡是报到3的猴子将被淘汰,接着从下一只猴子开始新一轮报数。每一轮报数会淘汰一只猴子,最后剩下的一只猴子当选为大王。请问当选大王的猴子是第几号?
样例输入 复制
样例输出 复制
31
提示
编程思路:
1. 生成列表[1,2,3,......,41]
2. 从i从1开始报数
3. 当还有超过1只猴子时进行以下循环:取出列表中第1只猴子,当报数i小于3时,把刚取出的猴子到队列的最后,报数i增加1,当i大于3时,报数恢复为1
4. 列表最后1只猴子就是大王
ls=list(range(1,42)) i = 1 while len(ls) > 1: n = ls.pop(0) if i<3: ls.append(n) i+= 1 if i>3: i=1 print(ls[0])