題目內容:
已知n個人(以編號0,1,2,3...n-1分別表示)圍坐在一張圓桌周圍。從編號為0的人開始報數1,數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。
輸入格式:
兩個正整數n, m,其中3<=n<=100, 1<=m<=n
輸出格式:
按照順序出列的人的編號列表
輸入樣例:
輸出樣例:
[1, 3, 0, 4, 2]
輸入樣例:
輸出樣例:
[2, 5, 8, 11, 3, 7, 0, 6, 1, 10, 4, 9]
編號從1到n,如果退出,則將編號變為0。迴圈n次退出
def josephus(n,m):
"""環的問題,
共有n個人圍成一圈,從1開始報數,數到m時退出,再從1開始,直到所有人退出
"""people = list(range(1,n+1))
index = 0
res =
#給n個人編號放到表people中,從下標為0的人開始
for i in range(n):
#for迴圈用來控制內部迴圈執行次數
count = 0
while count < m:
if people[index] != 0:
count += 1
if count == m:
#把退出的人的編號置0
people[index] = 0
index = (index+1) % n
return res
if __name__ == '__main__':
n = int(input())
m = int(input())
res = josephus(n,m)
print(res)
python實現約瑟夫 約瑟夫問題python實現
python語言之如何實現約瑟夫環問題 def josephus n,m if type n 60個人從1開始編號每人拿乙個號碼牌排成圈,從 1開始報數,第一次報數 totalnum 猴子總數 startnum 開始序號 intervalnum 間隔數def kingelect totalnum,s...
python解決約瑟夫問題
據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所...
python 用解決約瑟夫問題
coding utf 8 created on 2017年8月8日 author administrator 用python實現迴圈鍊錶,解決約瑟夫問題 class person def init self,num,next none self.next next self.num num defc...