你可以使用Python的列表来实现链表。具体的实现思路如下:

  1. 首先根据输入的新兵人数创建一个初始编号列表,编号从1到新兵人数。

  2. 创建一个变量count,初始化为1,表示当前报数。

  3. 创建一个变量index,初始化为0,表示当前队列中人的索引。

  4. 创建一个空列表result,用来存放剩下的新兵的最初编号。

  5. 使用while循环,直到队列中的人数不超过三人。

  6. 在循环中,根据count的值进行报数判断:

    • 如果count为2,则将队列中索引为index的人移出队列,并将index减1。

    • 如果count为3,则将队列中索引为index的人移出队列,并将index减1。

    • 其他情况下,将index加1,使队列向小序号方向靠拢。

    • 将count加1,如果count大于3,则将count重置为1。

  7. 循环结束后,将剩下的新兵最初的编号添加到result列表中。

  8. 输出result列表。

下面是具体的代码实现:

N = int(input())  # 输入测试数据组数

for _ in range(N):
    num = int(input())  # 输入新兵人数
    queue = list(range(1, num + 1))  # 创建初始编号列表
    count = 1
    index = 0
    result = []

    while len(queue) > 3:
        if count == 2:
            queue.pop(index)
            index -= 1
        elif count == 3:
            queue.pop(index)
            index -= 1
        else:
            index += 1

        count += 1
        if count > 3:
            count = 1

    result.extend(queue)  # 将剩下的新兵最初的编号添加到result列表中
    print(' '.join(map(str, result)))  # 输出result列表

注意,这里使用了map(str, result)将result列表中的元素转换为字符串,然后使用' '.join()将它们连接起来,并以空格分隔。这样输出时,每个编号之间会有一个空格


原文地址: https://www.cveoy.top/t/topic/iDux 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录