小阳儿儿

约瑟夫生死游戏
"""
30 个人在一条船上,超载,需要 15 人下船。
于是人们排成一队,排队的位置即为他们的编号。
报数,从 1 开始,数到 9 的人下船。
如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?

"""
#   1 2 3 4 5 6 7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

def xunh(x,y,z,lis):
    if x==30:
        while y < 15:
            for i in range(1,31):
                if i in l:
                    z -= 1
                if z == 9:
                    z=0
                    print("%s下船了" % i)
                    lis.append(i)
                    y+=1
                    if y>15:
                        break
                z+=1
n=1
a=0
l=[]
for i in range(1,31):
    if n==9:
        n=0
        print("%s下船了"%i)
        l.append(i)
        a+=1
    n+=1
    xunh(i,a,n,l)

 

posted on 2019-01-30 11:11  小阳儿儿  阅读(235)  评论(0编辑  收藏  举报