目录
游戏规则
算法思考
代码实现
游戏规则:
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止
算法思考:
毫无疑问,每数到第九个人就下船,并且重新开始计数,我们可以简单的想到以下代码:
while i:
check += 1
if check == 9:
people[i] = 0
check = 0
print("{}号下船了".format(i))
else:
i+=1
continue
但是在我们的代码中,并不能体现当第一轮每九个人(也就是3个人)下船后,再一次计数,此时people[ ]中之前下船的人仍然占据着位置,并没有真正的清除。则需要continue跳过:
if people[i] == 0:
i+=1
continue
else:
check+=1
if check == 9:
people[i]=0
check = 0
print("{}号下船了".format(i))
如此一来会跳过之前已经下船的人编号,聪明的读者也发现了people[i]==0是用的字典方法,也就是说,想要判断该编号的人有没有下船,则需要字典的方法,编号即键对应的值是否为1来判断:
people={}
for x in range(1,31):
people[x]=1 #创建关于people的字典,每个键的值均为1



