30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
# 约瑟夫生者死者小游戏"""
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
"""# 建立一个字典,用于标志状态,状态为1为留下,状态为0为下船
people = {}
for x in range(1, 31):people[x] = 1check = 0 # 用于标志是否下船
i = 1 # 用于标志每个人的编号
j = 0 # 用于标志下船的人数# 利用while循环
while i <= 31:if i == 31:i = 1elif j == 15: # 下船人数达到15,循环结束breakelse:if people[i] == 0:i += 1continueelse:check += 1if check == 9:people[i] = 0check = 0print(f"{i}号下船了")j += 1else:i += 1continue
运行结果:
D:PYTHON D:/PYTHON/demo/P14.py
9号下船了
18号下船了
27号下船了
6号下船了
16号下船了
26号下船了
7号下船了
19号下船了
30号下船了
12号下船了
24号下船了
8号下船了
22号下船了
5号下船了
23号下船了Process finished with exit code 0
本文发布于:2024-01-31 03:46:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664399725161.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |