约瑟夫环
题目描述
有n个人围城一个圈,按顺序排号号。然后从第一个人开始报数(从1到3报数),报到3的人退出圈子,然后继续从1到3报数,直到最后留下一个人游戏结束,问最后留下的是原来第几号。
输入描述
输入一个正整数
输出描述
输出最后留下的是原来的第几号
样例输入
5
样例输出
4
代码详解
展开查看
n = int(input()) ls = [1 for i in range(n)] p = 0 while ls.count(1) > 1: cnt = 0 while cnt < 3: if ls[p%n] == 1: cnt += 1 p += 1 ls [p%n -1] = 0 print(ls.index(1) + 1)
运行结果
展开查看
5 4