【题目描述】 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为 1 的人开始报数,数到 4 的那个人出圈;他的下一个人又从 1 开始报数,数到 4 的那个人又出圈;依此规律重复下去,直到剩余最后一个胜利者。 【输入格式】 一行,一个正整数n表示总人数 【输出格式】 一行,包含一个整数,最后胜利者的编号
示例一
输入:6
输出:5
示例二
输入:2
输出:1
示例三
输入:4
输出:2
#先输入一个正整数 代表总人数
#创建列表ls 人数用for循环依次编入到列表当中
#创建变量cnt 代表报数值(自增)
#循环报数
a = int(input())
ls = []
for i in range(1, n + 1):
ls.append(i)
cnt = 0
while len(ls) > 1:
cnt += 1
if cnt == 4:
cnt = 0
ls.remove(ls[0])
else:
ls.append(ls[0])
ls.remove(ls[0])
print(ls[0])