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,重新循环。
标签:队列,队首,猴子,问题,分桃,桃子,饲养员 来源: https://www.cnblogs.com/zsy211803139/p/16175362.html