【原創】只需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))

------------群內首發---------------

我想說的是,大道至簡,抓住本質,問題就迎刃而解。

感謝上面幾位提供思路,完美解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM