17個猴子圍成一圈,從某個開始報數1-2-3-1-2-3-……報「3」的猴子就被淘汰,遊戲一直進行到圈內只剩乙隻猴子它就是猴大王
思路:本來想直接操作list,結果總是報錯,後來想了想還不如寫個單獨的陣列存放,原始陣列存放最開始的猴子與位置,在用新的陣列來標記還在圈內的
num =3 #間隔數
sum=17 #總數
now_sum = sum
a=0 #初始計數
all_list = list(range(1 , sum+1))
end_all_list =
end_all_list = list(range(sum))
while now_sum > 1:
for x in range(sum):
if all_list[x] != 0:
a+=1
if a == num:
all_list[x] = 0
a = 0
now_sum-=1
print(all_list)
print('end')
print(all_list)
print(end_all_list)
約瑟夫問題(猴子選大王)
問題描述 約瑟夫問題 有 只猴子,按順時針方向圍成一圈選大王 編號從 到 從第 號開始報數,一直數到 數到 的猴子退出圈外,剩下的猴子再接著從1 開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入 後,輸出最後猴王的編號。輸入資料 每行是用空格分開的兩個整數,第乙個是 n,...
猴子選大王 約瑟夫問題
例題描述 由m只猴子圍成一圈,從1到m進行編號,打算從中選出乙個大王,經過協商,決定選出大王的規則 從第乙個開始迴圈報數,數到n的猴子出圈,下乙個猴子從1開始報數。輸入樣例 3 2 輸出樣例 3方法一 模擬法 include using namespace std define max 100 lo...
約瑟夫問題,猴子選大王
描述 約瑟夫問題 有 只猴子,按順時針方向圍成一圈選大王 編號從 到 從第 號開始報數,一直數到 數到 的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入 後,輸出最後猴王的編號。輸入每行是用空格分開的兩個整數,第乙個是 n,第二個是 m...