A38506. 【问题描述】 现有 n 个人围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下最后一个是胜利者。设 n 个人的编号分别为 1,2,...,n,打印出局的顺序。 根据上述描述,编写程序 【样例输入】10 4 【样例输出】 4 8 2 7 3 10 9 1 6 WINNER5
填空题
困难
知识点
题目描述
【问题描述】
现有 n 个人围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下最后一个是胜利者。设 n 个人的编号分别为 1,2,...,n,打印出局的顺序。
根据上述描述,编写程序
【样例输入】
10
4
【样例输出】
4
8
2
7
3
10
9
1
6 WINNER5
参考答案
def Fx(n, k):
L = list(range(1, n + 1))
if n == 1:
print(f'WINNER{L[0]}')
else:
x = 0
while len(L) != 1:
x = (x + k) % len(L) - 1
print(L[x])
del L[x]
if x < 0:
x = 0
print(f'WINNER{L[0]}') m = int(input())
n = int(input()) Fx(m, n)
上一题
下一题