您的位置:首页 > 编程语言 > Python开发

面试题:100个小朋友围在一起,设定编号为1~100,依次按1,2,3,4,5,6,7,8,9循环报数,报到9的小朋友出圈,请写代码打印各个小朋友的出圈顺序?(Python实现)

2018-03-29 11:56 841 查看
L = [x for x in range(1, 101)]
def fn(l, n=9):
ll = []
if len(l) > 1:
while len(l) > n-1:
lst = []
for i in range(n-1, len(l), n):
if (i + 1) % n == 0:
ll.append(l[i])
lst.append(l[i])
if len(l) - 1 - i < n:
for k in lst:
l.remove(k)
l = l[i:] + l[:i]
while len(l) > 1:
for x in range(2, n):
if len(l) * x >= n:
temp = l * x
ll.append(temp[n-1])
l = l[l.index(temp[n-1]):] + l[:l.index(temp[n-1])]
l.remove(temp[n-1])
break
ll.append(l[0])
return ll

ll = fn(L)
count = 0
for x in range(len(ll)):
if count % 10 == 0:
print()
print(ll[x], end=' ')
count += 1
print()
print("出圈的学生数:" + str(len(ll)))

运行结果为:

9 18 27 36 45 54 63 72 81 90
99 10 20 30 40 50 60 70 80 91
11 22 33 44 56 67 78 89 8 23
35 48 61 74 86 98 12 25 39 53
68 83 96 13 28 43 59 76 93 14
31 49 66 85 6 29 51 71 92 7
34 57 79 4 32 58 84 5 38 65
100 24 62 97 26 69 1 41 82 17
73 15 64 16 75 21 88 47 19 95
87 77 94 3 46 37 42 2 52 55
出圈的学生数:100
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐