前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题-python3 100个人围一圈编号1-100,依次开始报数报到3的退出

面试题-python3 100个人围一圈编号1-100,依次开始报数报到3的退出

作者头像
上海-悠悠
发布2021-05-17 16:42:40
2K0
发布2021-05-17 16:42:40
举报
文章被收录于专栏:从零开始学自动化测试

python测开笔试题

100个人围一圈编号1-100,依次开始报数, 从1开始,报到3的退出,然后继续从1开始,报到3退出,直到最后只有2个人,得到编号 58, 91 从1开始,报到4的退出,然后继续从1开始,报到4退出,直到最后只有3个人,得到编号 34, 45, 97

实现效果: 输入:3 输出:58,91 输入:4 输出:34, 45, 97

python3代码

解决思路,先把1-100编号,前面的99个单独取出来(能数到1-3),最后一个100,由于只有一个了,先单独拿出来 下一步前99个,数到3的移除,得到一个新的列表编号 把100和新的列表编号拼接到一块,这样可以进行下一轮的报数

代码语言:javascript
复制
n = 3  # 报的数
a = list(range(1, 101))  # 编号1-100
# 取出最后的余数
end_a = a[len(a)//n*n:]   # 多余的
start_a = a[:len(a)//n*n]
# print(start_a)
# print(end_a)
i = n
while i <= len(start_a):
    # 每隔3移除掉
    start_a.remove(start_a[i-1])
    i = (i-1) + n
# 多余的数拼接到前面,等下次继续
new_a = end_a+start_a
# 第一轮移除后得到新的列表
print(new_a)
# 得到新的列表:[100, 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 
19, 20, 22, 23, 25, 26, 28, 29, 31, 32, 34, 35, 37, 38, 40, 41, 
43, 44, 46, 47, 49, 50, 52, 53, 55, 56, 58, 59, 61, 62, 64, 65, 
67, 68, 70, 71, 73, 74, 76, 77, 79, 80, 82, 83, 85, 86, 
88, 89, 91, 92, 94, 95, 97, 98]

得到新的列表后,继续重复上面的操作,于是可以写个递归函数,直到列表数小于3为止

代码语言:javascript
复制
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

def remove_n(a, n=3):
    if len(a) < n:
        return sorted(a)
    # a = list(range(1, 101))
    # 取出最后的余数
    end_a = a[len(a)//n*n:]
    start_a = a[:len(a)//n*n]
    # print(start_a)
    # print(end_a)
    i = n
    while i <= len(start_a):
        start_a.remove(start_a[i-1])
        i = (i-1) + n
    new_a = end_a+start_a
    # print(new_a)
    return remove_n(new_a, n)

if __name__ == '__main__':
    a = list(range(1, 101))
    n1 = input()
    result1 = remove_n(a, int(n1))
    print(result1)
    n2 = input()
    result2 = remove_n(a, int(n2))
    print(result2)

实现效果:

代码语言:javascript
复制
3
[58, 91]
4
[34, 45, 97]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python测开笔试题
  • python3代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档