迴圈報數遊戲。

2021-08-26 12:19:03 字數 380 閱讀 3629

迴圈報數遊戲,有n個人,每乙個人編號從1開始,依次編號到n。從1到3報數,報3的退出遊戲,得出最後獲勝人的編號

關鍵在於構成環的這個下標問題如何解決?

解題思路:解決了構成環的關鍵問題,接下來就是依次遍歷計數,當報到3的那個給乙個標記-1,相應的陣列長度要減少。且計數重新開始,最後,重新遍歷一遍,返回不是-1的那個,即為勝利者。

public static int cyclicgame(int arr)}}

for(int i=0;i}return -1;

}public static void main(string args);

int m=cyclicgame(arr);

system.out.println(m);

}

迴圈報數問題

有n個人按照 到n編號圍成乙個圈做遊戲,從第乙個人開始從 報數,數到m的人退出遊戲,他後面的人接著重新從 開始報數 問最後剩下的人是幾號?這個問題被稱為約瑟夫 josephus 環問題。最容易想到的方法是用乙個迴圈鍊錶來模擬遊戲,直到最後只剩下1人 則可得到他的號碼 這種演算法的空間複雜度是 o n...

CCF報數遊戲

有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,1號小朋友坐在n號小朋友的順時針方向。遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上乙個小朋友報的數加1。若乙個小朋友報的數為k的倍數或其末位數 即數的個位 ...

迴圈報數(佇列版)

有 nn n 個小朋友做遊戲,他們的編號分別是 1,2,3.n1,2,3.n1,2,3.n。他們按照編號從小到大依次順時針圍成乙個圓圈,從第乙個小朋友開始從 11 1 報數,依次按照順時針方向報數 加一 報 mm m 的人會離開隊伍,然後下乙個小朋友會繼續從 11 1 開始報數,直到只剩乙個小朋友為...