【原创】只需3行代码,Python基础面试题:循环报数3的出圈

这不是标题党,先不要惊讶,请阅读到最后

题目:

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 100个人围一圈编号1-100,依次开始报数报到3的退出 

 

-----------------以下是本人的思路-------------------

 开始尝试递归,发现不好使,后来参考了群友code改进了

 

 

 感觉代码还是有点长,不方便理解,后面参考了csdn

Python——报数出圈

https://blog.csdn.net/weixin_44775255/article/details/105693765

 

 

加深了理解,然后就原创了下面的极简代码

# 极简
a=list(range(1,101))
n=3
while len(a)>=n:
    if n-2>=0:
        a=a[n:]+a[:n-1] 
print(sorted(a))

------------群内首发---------------

我想说的是,大道至简,抓住本质,问题就迎刃而解。

感谢上面几位提供思路,完美解决。

posted @ 2021-05-14 09:42  HuaBro  阅读(710)  评论(2编辑  收藏  举报