Python版《约瑟夫生死小说化生存模拟》游戏开发
发布时间
阅读量:
阅读量
问题描述
有30人乘坐一艘船,由于超载,必须让15人离开船只。众人按照顺序排成一列,其所在位置即为各自的编号。开始报数,从1依次数至9的人员需离船。重复这一过程,直至船上仅余下15人为止,那么最终哪些编号的人员会被要求离开呢?
算法思路
- 采用环形链表的方式建立相应的数据结构
- 当遇到能够被9整除的数值时,将对应的链表节点移除,并使指针指向后续的元素
核心代码
# 首先构造环形链表,这个很基本不多说
# 删除链表操作
while remain_people != 15:
for ii in range(1,8): # 前7次运动是没有任何问题的
ptr = ptr.next
else: # 第8次运动,需要跳过第9个数,并将其删除
# 打印9号链表
print(ptr,'{}号下船了'.format(ptr.next.name))
# 删除9号链表(同时跳过这个数)
ptr.next = ptr.next.next
remain_people -= 1
# 指针向前运动一次
ptr = ptr.next
AI写代码p
全部评论 (0)
还没有任何评论哟~
