在下文中,我将简单使用python编写一个小程序,实现n人1、2、3循环轮流报数,凡是报到3的就被淘汰,最后留下的两人胜利。(文中代码以28人为例)
1、代码构思
28人编号并1、2、3轮流报数,第一位报到3的人淘汰,并将这个人前面的两个人移动到最后。再重新进行报数,并用while函数重复上述操作,最后剩下的两个人即为胜利者。
2、代码实现过程
list1 = [n for n in range(1,29)] #for 语句循环
print('原始列表:',list1)
def move(list,sep):
for n in range(sep):
item = list1.pop(0)
list1.append(item) #在list1列表后面添加新对象
#定义了move函数,将每次循环的前两个人移动到列表最后
count=0
while len(list)>2:
count+=1
move(list1,2)
list1.po(0)
print('第',count,'轮',list)
#while循环,在列表大于2的时候执行move语句并将移动编号的后一个编号进行删除(淘汰)
print('胜利者:'list)
运行结果