python实现小孩报数问题

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)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,916评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 7,173评论 0 9
  • 我这样回应孩子的保证 最近小宝说的最多的话就是:妈妈,我再也不这样,相信我吗? 有的时候,我会明确的告诉他:当然相...
    小花妈妈妈阅读 266评论 0 0
  • 今天是20171010农历0821,大概取十全十美之意,结婚的人很多,但愿普天之下,有情人终成眷属
    海华的一亩二分地阅读 584评论 1 50
  • 深夜值班,所以想记录一下自己的感受和最近的看法。 大夜,是最熬人的。但对于现在的我,即使疲倦,也毫无睡意。也许因为...
    清衫Lc阅读 147评论 0 0