Python 練習例69

Python 100例

問題: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

Python 100例

その他の拡張