Python ジョセフライブアンドデッドゲーム

30人がボートに乗って過負荷になり、15人が下船する必要があります。

つまり、人々は一列に並んでおり、その列の位置は彼らの番号です。

1から始まる番号を報告し、9まで数える人は下船します。

このようにサイクルし、ボートに残っている人が15人になるまで続きますが、ボートから降りた人の番号は何ですか?

実例

people={}
for x in range(1,31):
    people[x]=1
# print(people)
check=0
i=1
j=0
while i<=31:
    if i == 31:
        i=1
    elif j == 15:
        break
    else:
        if people[i] == 0:
            i+=1
            continue
        else:
            check+=1
            if check == 9:
                people[i]=0
                check = 0
                print("{}号が下船しました".format(i))
                j+=1
            else:
                i+=1
                continue

上記の例を実行すると、出力結果は次のようになります。

9号が下船しました。
18号が下船しました。
27号が下船しました。
6号が下船しました。
16号が下船しました。
26号が下船しました。
7号が下船しました。
19号が下船しました。
30号が下船しました。
12号が下船しました。
24号が下船しました。
8号が下船しました。
22号が下船しました。
5号が下船しました。
23号が下船しました。
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です