赞
踩
约瑟夫环问题 13个人围成一圈,从第一个人开始1、2、3顺序循环报数,凡数到3的人退出圈子,输出最后留在圈中的人的序号。
- def josephus(n):
- # 创建人员列表
- people = list(range(1, n + 1))
-
- # 初始化索引和报数计数器
- index = 0
- count = 0
-
- while len(people) > 1:
- count += 1
- # 报数到3时淘汰当前人员
- if count == 3:
- people.pop(index)
- count = 0
- else:
- index = (index + 1) % len(people)
-
- return people[0]
# 输入人数 n = 13 # 调用函数计算最后留下的人的编号 result = josephus(n) # 输出结果 print("最后留下的是原来第{}号的人".format(result)) </
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。