Python实战之约瑟夫生者死者小游戏
上一节
下一节
参考资料:
案例6:Python实战 之 约瑟夫生者死者小游戏
------------------------------------案例背景---------------------------------------
已知:一条船上有 30 个人,由于超载,故需要 15 人下船。
方法:所有人排成一队,排队的位置即为他们的编号,然后从头开始报数(从 1 开始),报数 9 的 人下船;如此循环下去,直到船上仅剩 15 人为止。
问题:都有哪些编号的人下船了呢?
------------------------------------知识点----------------------------------------
[1] 字 典:键值对
[2] 列 表:.append()
[3] 循环语句:if语句-----while语句----break语句----continue语句
------------------------------------源代码-----------------------------------------
people = {}
for x in range(1,31):
people[x] = 1
check = 0
i = 1
j = 0
lst = []
while i <= 31:
if i == 31:
i = 1
elif j == 15:
break
else:
if people[i] == 0:
i += 1
continue
else:
check += 1
if check == 9:
people[i] = 0
check = 0
lst.append(i)
j += 1
else:
i += 1
continue
sorted(lst)

