天天看點

Python :約瑟夫生者死者小遊戲

30 個人在一條船上,超載,需要 15 人下船。

于是人們排成一隊,排隊的位置即為他們的編号。

報數,從 1 開始,數到 9 的人下船。

如此循環,直到船上僅剩 15 人為止,問都有哪些編号的人下船了呢?

people = {}
for x in range (1,31):
    people[x] = 1                 #未下船的人為1,下船的人為0
check = 0
i = 0
j = 30
while j > 15:
    i += 1
    if i ==31:
        i = 0                #當所有人報完一圈數之後,需要從頭開始報數
        continue
    elif people[i] == 1:
        check += 1
        if check == 9:
            people[i] = 0
            check = 0
            j -= 1
            print("{}号下船了".format(i))
           

結果如下:

Python :約瑟夫生者死者小遊戲