26757 迴圈鍊錶練習 分數 100

2021-07-03 17:35:40 字數 660 閱讀 9827

題目描述

有n只猴子,按順時針方向圍成一圈(開始時編號為1,2,……n),選大王。從第1號猴子開始報數1,2,3……,數到m號時該猴子退出到圈外,如此報數直到圈內只剩下乙隻猴子時,此猴便是大王。你的任務是從鍵盤讀入n,m,程式判斷輸出最後的大王是幾號?

輸入格式

輸入一行,n,m分別表示猴子數量和報的數輸出

輸出選出的大王

樣例輸入

5 3樣例輸出 4

program p4851;

var a,b,c,d,n,m:integer;

admin:array[1..10000] of integer;

begin

b:=0;

read(n,m);

for a:=1 to n do

admin[a]:=a;

b:=m;

for a:=1 to n-1 do

begin

admin[b]:=0;

while cn then

b:=b mod n;

if admin[b]>0

then c:=c+1;

end;c:=0;

end;

for a:=1 to n do if admin[a]>0 then writeln(a);

end.

約瑟夫問題(迴圈鍊錶)練習

約瑟夫問題是個著名的問題 n個人圍成一圈,第乙個人從1開始報數,報m的將被殺掉,下乙個人接著從1開始報。如此反覆,最後剩下乙個,求最後的勝利者。例如只有三個人,把他們叫做a b c,他們圍成一圈,從a開始報數,假設報2的人被殺掉。約瑟夫問題其實就乙個迴圈鍊錶問題 先建立節點類 public clas...

迴圈鍊錶練習 一 約瑟夫環

約瑟夫環問題,是乙個經典的迴圈鍊錶問題,題意是 已知 n 個人 分別用編號 1,2,3,n 表示 圍坐在一張圓桌周圍,從編號為 k 的人開始順時針報數,數到 m 的那個人出列 他的下乙個人又從 1 開始,還是順時針開始報數,數到 m 的那個人又出列 依次重複下去,直到圓桌上剩餘乙個人。如圖所示,假設...

迴圈鍊錶,雙向鍊錶

迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...