编程题

现有 n 个人依次围成一圈玩游戏, 从第 1 个人开始报数, 数到第 m 个人出局, 然后从出局的下一个人开始报数, 数到第 m 个人又出局, ..., 如此反复到只剩下最后一个是胜利者。

设 n 个人的编号分别为 1, 2, ..., n, 打印出局的顺序。

根据上述算法思想, 补全下列代码。

输入输出示例: 当 n=10, m=4, 输出如下:

出局的人是: 4

出局的人是: 8

出局的人是: 2

出局的人是: 7

出局的人是: 3

出局的人是: 10

出局的人是: 9

出局的人是: 1

出局的人是: 6

最后胜利者是: 5

def fun(n,k):

  L = list(①)

  if n == 1:

    return

  else:

    x = 0

    for i in ② :

      x = ③ - 1

      print('出局的人是:',L[x])

      del L[x]

      if x < 0:

        x = 0

    print('最后胜利者是:',④)

fun(10,4)

查看答案
赣ICP备20007335号-2