美文网首页
围圈报数

围圈报数

作者: XH_hector | 来源:发表于2021-01-05 22:05 被阅读0次

题目

N个人围圈进行1,2,3报数,数到3的退出,其余人继续,最后剩余的是原来队伍中的第几个。

n = 32     #32个人围圈报数
if n == 1:
    bList = [1]
else:
    aList = [i for i in range(1,n+1)] #生成1个1~N的序列组成的列表
    num = 0
    while True:
        for i in range(len(aList)):
            if (i+num+1) % 3 == 0:
                aList[i] = 0
        if aList[-1] == 0:
            num = 0
        elif aList[-2] == 0:
            num = 1
        else:
            num = 2
        bList = [i for i in aList  if i !=0]    
        aList = bList 
        if len(bList) == 1:
            break
print(bList)

相关文章

  • 围圈报数

  • 围圈报数

    题目 N个人围圈进行1,2,3报数,数到3的退出,其余人继续,最后剩余的是原来队伍中的第几个。

  • 围圈报数问题的一种算法的原理解析

    围圈报数问题描述如下:有n个人围成一圈,依次编号为0,1,2,3......,然后从0开始报数,每次报数为M的倍数...

  • 一起玩游戏好吗?

    21点 玩法: 围圈, 大家开始报数, 1,2,3,4......被迫报数"21"的人为输,需惩罚. 报数过程中,...

  • 【拆书沙龙NO4】打造你的归档系统

    【活动主持】 【找搭档】:围圈,道具(玩具熊),找搭档 全体报数,单数为组长,小组排序,组长记住自己的组号。每组两...

  • 人围圈

  • [java]约瑟夫环问题

    约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然后重新开始报数,问最后自杀的人是谁?

  • 围圈不小事

    在我眼里,孩子吃饭磨叽,穿衣服磨叽,洗脸刷牙磨叽,做作业更是磨叽……我五分钟能做完的事,她一个小时都做不完,...

  • python实现小孩报数问题

    N个小孩围成一个圈,由第1个小孩开始报数,报数为M的人出局,请问最后出局的小孩是第几个 代码如下:

  • 使用单链表解决约瑟夫问题

    问题描述: N个人围成一圈,从第k个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复...

网友评论

      本文标题:围圈报数

      本文链接:https://www.haomeiwen.com/subject/dhhgoktx.html