编号为1,2,…,n的n个人按顺时针方向围坐在一张圆桌周围,每人持有一个密码(正整数)。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报m的那个人出列
时间: 2023-04-26 09:00:45 浏览: 157
,然后从他的顺时针方向的下一个人开始重新从1开始报数,如此循环下去,直到圆桌上只剩下一人为止。这个人的密码就是最终的密码。
这个问题可以用循环链表来解决。首先将n个人的密码存储在循环链表中,然后从第一个人开始报数,每报到m时,就将当前节点从链表中删除。删除后,从当前节点的下一个节点开始重新从1开始报数,直到只剩下一个节点为止。最后剩下的节点就是最终的密码对应的人。
阅读全文