题目内容:n个人围成一圈,从第一个人开始顺序报号1,2,3.凡报到3者退出圈子。找出最后留在圈子里的人原来的序号。要求用数组实现。
python代码:
count = 0 #从0号开始
killpeoplejiange = 2 #每隔2个杀一个人(每3个杀一个)
people = [0,1,2,3,4,5,6,7,8,9] #定义10个人的列表(数组)
print("删除顺序为:")
while len(people) != 1: #当只有一人退出程序
count += killpeoplejiange
if count >= len(people): #如果超出了长度,就取一个余,然后杀
count = count % len(people)
print(people[count])
del people[count] #杀
else: #没超出就直接杀
print(people[count])
del people[count]
print("最后剩下:",people) #打印最后剩下的