1. 程式人生 > 其它 >7-1 猴子分桃問題

7-1 猴子分桃問題

動物園裡有n只猴子,依次排成一隊等待飼養員按規則分桃。動物園的分桃規則是每隻猴子可以分得m個桃子,但是必須排隊領取。飼養員迴圈地每次取出1個,2個,…,k個桃放入筐中,由排在隊首的猴子領取,當放入到筐中的桃子數為k後,又重新從1開始放,只有筐中沒有桃子了,飼養員才會往裡面放。當筐中桃子數加上隊首猴子已經取得的桃子數不超過m時,隊首的猴子可以全部取出筐中的桃子,取得桃子總數不足m個的猴子,繼續到隊尾排隊等候。當筐中桃子數隊首猴子已取得的桃子數超過m時,隊首的猴子只能取滿m個,然後離開佇列,筐中剩餘的桃子由下一隻猴子取用。上述分桃過程一直進行到每隻猴子都分到m個桃子。程式設計實現輸出猴子離開佇列的次序。

輸入格式:

5 3 40

輸出樣例:

1 3 5 2 4 

Gitee程式碼位置:

https://gitee.com/zhang-siyuan-211803139/data-structure/tree/master/棧和佇列實驗題目集4/猴子分桃問題

思路:

利用佇列先進先出的特點,每次猴子拿到桃子就出隊,然後在入隊尾,直至佇列為空時結束。注意:每次拿到的桃子數,是遞增的,在滿K之後需要將其設定為1,重新迴圈。