2024全国青少年电子信息智能创新大赛(决赛)python ·模拟三卷解析
一、程序题
第一题:
描述
现有 n 个人依次围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下最后一个是胜利者。设 n 个人的编号分别为 1,2,...,n,打印出局的顺序。
输入:
10 4
输出:
出局的人是: 4
出局的人是: 8
出局的人是: 2
出局的人是: 7
出局的人是: 3
出局的人是: 10
出局的人是: 9
出局的人是: 1
出局的人是: 6
最后胜利者是: 5
def josephus(n,m):
a=[i for i in range(1,n+1)]
num=0
while len(a)>0:
num=(num+m-1)%len(a)
print("出局的人是:{}".format(a[num]))
del a[num]
if __name__=="__main__":
n,m=map(int,i