10.13華為機試python(1)

約瑟夫環(huán)問題
輸入測試用例數(shù)量num
每組測試用例輸入格式:
輸入人數(shù)
輸入kill號
測試用例:
輸入:3 2 3 4 2 4 5
輸出:1 2
  ?。病。础。场。?br>    ?。薄。场。病。?br> 思路:
分為進桌和出桌。

res = []
num = int(input())
for i in range(num):#測試用例數(shù)
    n = int(input())#人數(shù)
    m = int(input())#kill號

    come = []#進桌序列
    leave = []#出桌序列
    for j in range(n):#進桌,進n個人
        come.append(j+1)#j從0開始,所以要進j+1

    start = 0
    for k in range(n-1):#最后一個人直接放到出桌最后一位,所以先執(zhí)行n-1個人(除最后一個人的情況)
        start = (start+m-1)%len(come)
        leave.append(come[start])#把出桌的編號放到出桌里
        del come[start]#在入桌中刪除這個編號
    leave.append(come[0])#把最后一個人放到出桌的最后
    res.append(leave)#把出桌作為放到結(jié)果里

for i in range(len(res)):#輸出數(shù)據(jù)
    for j in range(len(res[i])):
        print(res[i][j],end='')#默認輸出完是回車,所以后面加上end=''
        if j != len(res[i])-1 :#如果輸出沒到最后一個就輸出空格,最后一個不輸出空格
            print(" ",end='')
        else :
            print("")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容