前情提要:船上30人排成圆圈,由1起循环报数,9的倍数抛下船,直至船上余15人。
这是同在CSDN的前辈的代码,今天看到感觉超级棒,也分享在此:
lst = list(range(1,31))
j,k = 1,0
while True:
if len(lst) > 15:
if j == 9:
print('{:<2d}号被抛下'.format(lst[k]))
lst.remove(lst[k])
j = 1
else:
j += 1
k += 1
if len(lst) == k:
k = 0
else:break
下面是我的笨办法:
lst = list(range(1,31))
while True:
j = 9
n = len(lst)
if n == 15 :
print('船上人员清单:',lst,'\n','抛下人员清单:',set(range(1,31)) - set(lst))
break
else:
if n > 15 and n % j == 0:
y = (j - 1)
for x in range(n // j):
print('{:<2d}号被抛下'.format(lst[y]))
lst.