- PHP程序員面試算法寶典
- 猿媛之家組編 琉憶 楚秦等編著
- 325字
- 2019-09-16 15:13:13
1.2 哪只猴子可以當大王
難度系數:★★★☆☆
被考查系數:★★★☆☆
題目描述:
一群猴子排成一圈,按1,2,…,n依次編號。然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,再把它踢出去……,如此不停地進行下去,直到最后只剩下一只猴子為止,那只猴子就可以當大王。要求編程模擬此過程,輸入m、n,輸出最后那個大王的編號。
分析與解答:
首先將猴子從1到n編號存放在數組中,對猴子的總個數進行循環,循環時將數到編號的猴子從數組刪除,將沒有數到編號的猴子從原位置移到數組末尾,移動后需將原位置的編號刪除。只要判斷該編號數組個數大于1都繼續循環,直到數組最后只剩下一個編號,那么這個編號就是當大王的猴子。
設m=5,n=2,實現代碼如下:

程序的運行結果為
