約瑟環問題(丟手絹)

2021-09-22 02:11:38 字數 442 閱讀 7906

題目:

n個人圍成一圈,起始編號為0-n-1。從0開始依次報數,報到m則離開圓圈。

問最後離開的人的編號多少?

分析:以每個人離開作為乙個週期,下一次假設所有人編號變化(其實是對映到)新的編號0-n-2。

這裡的對映關係可以通過取模獲得:

每次離開乙個人,離開前總人數n,m-1的人離開,那麼下次編號和上次編號對映關係是:(x-m)%n

因此,可以形成動態規劃序列。

答案:

package algorithm;

/** * @author liuxiang

* @version create time:21:52 2019/5/9

* desc

*/public class josephcircle

return result;

}}

1875 丟手絹 約瑟夫環變形 列舉

1875 丟手絹 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 六一兒童節到了,小朋友們在玩丟手絹的遊戲。總共有 c個小朋友,編號從1到 c,他們站成乙個圈,第 i 1個人的左邊是 i 1,第 1個人的左邊是c。第 i 1 i個人的右邊是 i 1,第 c個人的右...

約瑟環的實現

intarray 100 n 0,m 0,receive 100 receive 陣列用來接收每次交出去的人 n 是用來記錄輸入的總人數 m 是用來記錄中間割幾個人 intcountm 0 用來記錄圈子裡面剩餘的人數 printf 請輸入圈子裡面的總人數 m和迴圈報數出列條件的 m n scanf ...

演算法題之丟手絹問題

n個人圍成一圈,順序排號,從第乙個人開始報數 從1到3報數 凡報到3的人退出圈子,問最後留下的是原來的多少號?public class diushoujuan public static int result int n int leftcount n 報數的人數 int countnum 0 要報...