zoukankan      html  css  js  c++  java
  • python

    在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中。39个犹太人决定宁愿死也不要被敌人俘虏,商定一种特殊的方式自杀,41个人排成一个圆圈,由第1个人开始报数,每报到第3人该人就必须自杀,直到所有人都自杀身亡为止。约瑟夫和他的朋友并不想死,约瑟夫怎样安排自己和朋友才能逃过一劫?

    #man: 玩家个数
    #sep: 杀死数到的第几个人
    #rest: 剩余幸存者的数量
    
    
    #将前两个数往后移,使得第三个数暴露在排头,方便删除
    def move(man, sep):
        for i in range(sep):
            item = man.pop(0)
            man.append(item)
    
    def play(man = 41, sep = 3, rest = 2):
        print("总共%d个人,每报数到第%d个人自杀,最后剩余%d个人" % (man, sep, rest))
        man = [i for i in range(1, man + 1)]
        print("玩家队列:", man)
        sep -= 1  #隔离第三个人的前两个人
        while len(man) > rest:
            move(man, sep)
            print("kill", man.pop(0))
        return man
    
    servive = play()
    print("最后逃生的人的编号是:", servive)
    

      

  • 相关阅读:
    nginx,php for window 7(64bit) install
    ret.concat.apply([],ret)
    JavaScript:constructor属性
    jquery 插件address
    学习笔记(C++)
    关于网站缓存设计的几点思考
    Ubuntu20.04 换源 Learner
    什么叫程序集
    c# 中堆和栈的区别
    命名空间和类的概念
  • 原文地址:https://www.cnblogs.com/kl-1998/p/10547781.html
Copyright © 2011-2022 走看看