"""
实现一个报数小游戏:
有N个人围成一圈顺序报号,从第一个人开始报数(从1到3),报到3的人退出圈子,最后留下的是原来的第几号。
"""
'''
程序运行示咧
输入:
输入总人数:25
输出:
最后留下的认识原来的第14号
'''
# 这个程序模拟了一个游戏过程,其中总人数被输入,然后通过一定规则排除一些人,最后留下一个人。
# 输入总人数:无
# 返回值:无
tal = int(input("输入总人数:")) # 获取输入的总人数
arr = [True] * tal # 创建一个布尔列表,初始状态都为True,用于标记每个人的状态(是否被留下)
num = 1 # 初始化一个计数器,用于追踪当前的步骤
cot = 0 # 初始化一个计数器,用于记录已经排除的人数
pos = 0 # 初始化一个指针,用于指向当前操作的位置
# 循环,直到剩下最后一个人
while cot < tal - 1:
if pos > tal - 1: # 如果指针超出列表范围,将其重置为0
pos = 0
if not arr[pos]: # 如果当前位置的人已经被排除,则跳过
pos += 1
continue
if num == 3: # 当计数器为3时,将当前位置的人排除,并重置计数器和位置
num = 1
arr[pos] = False
pos += 1
cot += 1
else: # 如果计数器不为3,则递增计数器和位置
num += 1
pos += 1
# 遍历布尔列表,找到最后留下的人,并输出其原始编号
for item in enumerate(arr):
if item[1]:
print("最后留下的认识原来的第%d号" % (item[0] + 1))
break
Day:实现一个报数小游戏
未经允许不得转载:创想未来 » Day:实现一个报数小游戏
评论前必须登录!
注册