while的循环条件是 len(people) > 1,也就是说列表里元素的个数大于1个就继续循环。当然,如果想留下多个人的话,把 1改成相应的人数就可以了。while循环里的逻辑也很简单。如果 num == 3,也即报数的数字是3,就把队伍最前面的元素从队伍里移除 people.pop(0),否则就把队伍最前面的元素移到队伍最后面...
问题描述: 有n个人围成一圈,从1开始按顺序编号,从第一个人开始从1到k(假设k=3)报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号。 之前曾经推送过一个使用Python标准库itertools中的cycle对象和列表切片模拟该问题的代码,请参考Python版本的报数游戏。本文再提供一个使用列...