版权声明:著作权归作者所有商业转载请联系作者获得授权,非商业转载请注明出处 /BaiBai_Yazi/article/details/
题目内容:有n只猴子怎么选猴王,按顺时针方向围成一圈选大王(编号从1到n)從第1号开始报数,一直数到m数到m的猴子怎么选猴王退出圈外,剩下的猴子怎么选猴王再接着从1开始报数就这样,直到圈内只剩下一只猴子怎么选猴王时这个猴子怎么选猴王就是猴王,编程求输入nm后,输出最后猴王的编号
输出格式:输出包含一行,即最后猴王的编號
- 使用一个循环链表将这些猴子怎么选猴王串起来,每次报号后就向后 ? work = work->next ; 当报号到所输入的num时候便删除当前节点
- 使用双向循环链表,使删除操作更简单
- 注意我使用work指向的下一个节点,即:若我设置编号为 1–2--3–4--5–6 的序列设置口号 2 则 报完第一个轮次后work节点为 3,设立一个temp節点为 2然后delete temp ; 从而使work节点始终处于工作状态直至 work->next = work(只有一个节点)即为King。