30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
people = {}
#对人进行编号
for x in range(1,31):
people[x]=1
count = 0 #船上的人报数数
i = 1 #船上人的编号
j = 0 #扔下去的人的个数
while i <= 31:
if i == 31:
i = 1
elif j == 15:
break
else:
#被扔下船的人不再计数
if people[i] == 0:
i += 1
continue
#没有被扔下船的人继续游戏
else:
count += 1 #开始报数
#把报数是9的人扔下船,让变量的值为0
if count == 9:
people [i] =0
count = 0
print(i," is drived out of the ship!")
j += 1
else:
i+=1
continue