30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢? s=list(range(1,31)) #用一个30个数的列表代表30个人 for i in s: if len(s)>15: #列表长度>15,代表循环还没有终止 print("第%d人下船了"%s[8]) #数到9的人,也就是s[8] s=s[9:]+s[:8] #关键之处,用列表的切片重新形成列表 print(s)