1 #coding:utf-8
2 #__author__ = 'Diva'
3 # 用戶輸入n,n代表人數,圍成一圈,順序排號
4 # 從第一個開始報數,1,2,3,數到3的人,退出圈子
5
6 # 報數邏輯,數到3的把對應的位置置為0,直到剩下最后一個人
7 def num_report(list_create):
8 n = 0
9 list_size = len(list_create)
10 number_stay = list_size # 剩下的人數(值為1的個數)
11 while not number_stay == 1:
12 for i in range(list_size):
13 if list_create[i] == 1:
14 n = n + 1
15 if n == 3:
16 list_create[i] = 0
17 n = 0
18 number_stay = number_stay - 1
19 if i == list_size:
20 i = 0
21
22 # 通過報數函數最后生成的新的列表,遍歷,找到唯一一個值不是0的人
23 def remove_num_3(list_create):
24 num_report(list_create)
25 print('經過報數邏輯最后得到的列表是:' + str(list_create))
26 i = 0
27 while i < len(list_create):
28 if list_create[i] == 1:
29 print('最后剩下的編號是:' + str(i + 1))
30 return True
31 i = i + 1
32
33 # 根據用戶輸入的人數n,生成列表,同時執行移除動作
34 def list_create_rm(n):
35 try:
36 if not n.isdigit():
37 return False
38 except ValueError as e:
39 pass
40
41 nn = int(n)
42 i = 0
43 list_create = []
44 while i < nn:
45 list_create.append(1)
46 i = i + 1
47 print('生成的列表是:' + str(list_create))
48 remove_num_3(list_create)
49
50 if __name__ == '__main__':
51 n = raw_input('請輸入人數:')
52 list_create_rm(n)