# 定义一个列表用于存储所有人的编号
people = list(range(1, 1001))

# 定义一个变量用于记录当前报数的位置
index = 0

# 开始报数,直到只剩下一个人为止
while len(people) > 1:
    # 计算当前报数的人的编号
    current = people[index]
    # 如果报数为1,则将该人从列表中删除
    if current % 2 == 1:
        people.pop(index)
    # 否则将该人的编号放到列表的末尾
    else:
        people.append(current)
        people.pop(index)
    # 更新报数位置
    index = (index + 1) % len(people)

# 输出最后剩下的人的编号
print(people[0])

输出结果为:

977
一千个人站成一排编号1~1000从1号开始进行1、2循环报数报到1的淘汰2的留下留下的人继续1、2循环报数报到1的淘汰2的留下如此重复最后留下的人编号是多少用编程实现

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

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