美文网首页
python实现小孩报数问题

python实现小孩报数问题

作者: fishandcat | 来源:发表于2018-04-16 22:24 被阅读0次

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


图示

代码如下:

def baoshu(n, m):
    """
    :param n: n个人
    :param m: 报数为m出列
    :return:
    """
    baoshu = 0
    child = [i for i in range(1, n+1)]    #给小孩编号
    while len(child) > 1:
        baoshu += 1
        child.append(child.pop(0))   #将list第一个数放到list的末尾,将list围成一个圈
        if baoshu == m:           #判断报数与M是否相等,相等则移除该小孩
            baoshu = 0
            print child.pop()
    print child

if __name__ == '__main__':
    baoshu(100, 10)

相关文章

网友评论

      本文标题:python实现小孩报数问题

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