報數問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位


n = int(input("請輸入人數:"))
list_p = list(range(1,n+1)) #將所有人放在一個數字里面
count = 0    #設置一個變量,用戶計算報數
import copy  #深淺拷貝
while len(list_p) > 1:              #當數組中至少有2個元素的時候進行循環
    list_per = copy.copy(list_p)    #淺拷貝一個相同的數組,用來限制內部循環
    for i in range(len(list_per)):  #內層循環開始,從第一個人開始報數
        count += 1                  #每報一次,count計數加1
        if count % 3 == 0:          #如果count能被3整除,則是報道3的人
            list_p.remove(list_per[i])  #把報道3的人移除數組

print(count)
print("留下來的是原來的第%d號" %list_p[0]) #當數組剩下2個元素時,第一個元素的值就是原數組的第幾號

 


免責聲明!

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



猜您在找 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有10個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是第幾號的人 【JAVA習題二十七】有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下 有17個人圍成一圈(編號為0~16),從第 0號的人開始從 1報數, 凡報到 3的倍數的人離開圈子,然后再數下去,直到最后只剩下一個人為止。 問此人原來的位置是多少號? java解答:有17個人圍成一圈(編號0~16),從第0號的人開始從1報數,凡報到3的倍數的人離開圈子,然后再數下去,直到最后只剩下一個人為止,問此人原來的位置是多少號? C語言——N個人圍成一圈報數淘汰問題 有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大? 一個n位的數,去掉其中的k位,問怎樣去使得留下來的(n-k)位數按原來的前后順序組成的數最小 Leetcode練習(Python):動態規划類:第213題:打家劫舍 II:你是一個專業的小偷,計划偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味着第一個房屋和最后一個房屋是緊挨着的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM