約瑟夫問題大意:
在羅馬人占領喬塔帕特後,39個猶太人與約瑟夫及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報數,直到所有人都自殺身亡為止。然而約瑟夫和他的朋友並不想遵從,約瑟夫要他的朋友先假裝遵從,他將朋友與自己安排在第16個與第31個位置,於是逃過了這場死亡遊戲。迴圈鍊錶解法:
public
class
josephtest
public
void
joseph
(josephtest josephtest)
else
} system.out.
println
(node.
getitem()
);system.out.
println
(node.
getnext()
.getitem()
);system.out.
println
(next.
getitem()
);}@test
public
void
testcirclelist()
}}// 建立迴圈鍊錶
public
void
createcirclelist
(int n)
// 尾節點的下乙個節點指向首節點即可構成迴圈鍊錶
if(i == n)
node newnode =
newnode
(i, null)
; pre.
setnext
(newnode)
; pre = newnode;}}
}
public
class
node
public node getnext()
public
void
setnext
(node next)
public t getitem()
public
void
setitem
(t item)
}
迴圈鍊錶 約瑟夫問題
設編號分別為 1,2,n的n個人圍坐一圈。約定序號為k 1 k n 的人從1開始計數,數到m的那個人出列,他的下一位又從1開始計數,數到m的那個人又出列,依次類推,直到所有人出列為止。演算法思路 1 先建立乙個有n個結點的單迴圈鍊錶,編號從1到n,代表n個人。2 找到第k個結點,即第乙個開始報數的人...
(迴圈鍊錶)約瑟夫問題
time limit 1000 ms memory limit 65536 kib submit statistic n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的...
迴圈鍊錶 約瑟夫問題
n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的編號。input 輸入n和m值。output 輸出勝利者的編號。struct st cr int n 建立迴圈鍊錶 t...