Python 練習例69
問題:n人の人が輪になって並び、順番に番号を付けます。最初の人から数え始め(1から3まで数える)、3を数えた人は輪から抜けます。最後に残るのは元の何番の人でしょうか。
プログラム分析:なし。
プログラムソースコード:
実例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
nmax = 50
n = int(raw_input('総人数を入力してください:'))
num = []
for i in range(n):
num.append(i + 1)
i = 0
k = 0
m = 0
while m < n - 1:
if num[i] != 0 : k += 1
if k == 3:
num[i] = 0
k = 0
m += 1
i += 1
if i == n : i = 0
i = 0
while num[i] == 0: i += 1
print num[i]
上記のコードを実行すると、出力結果は次のようになります:
$ python test.py 请输入总人数:34 10その他の拡張