python案例训练25——约瑟夫生者死者小游戏

阅读: 评论:0

python案例训练25——约瑟夫生者死者小游戏

python案例训练25——约瑟夫生者死者小游戏

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小时内删除。

标签:约瑟夫   小游戏   死者   案例   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23