测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)
上一题 下一题