这不是标题党,先不要惊讶,请阅读到最后
题目:
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))
------------群内首发---------------
我想说的是,大道至简,抓住本质,问题就迎刃而解。
感谢上面几位提供思路,完美解决。