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

Python 有17个人围成一圈(编号为:0 ~ 16),从第0号的人开始从1开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止 。问此人原来的位置是什么号码

2018-10-22 22:26 951 查看

Python 有17个人围成一圈(编号为:0 ~ 16),从第0号的人开始从1开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是什么号码

Python代码实现

def test(ren,count=0):
a = len(ren)
b = count
for i in ren:
b += 1
if len(ren) == 1:
return ren
if b % 3 == 0:
b += 1
ren.remove(i)
print(ren)
count += a
return test(ren,count)

ren = list(range(17))
test(ren)

运行结果

[0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16]
[1, 3, 6, 7, 10, 12, 15, 16]
[3, 6, 10, 12, 16]
[3, 10, 12]
[3, 10]
[3, 10]
[10]
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐