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