摘要:
1、已知n个人(以编号1,2,3,...,n分别表示)围坐在一张圆桌周围,从编号为k的人开始报数,数到m的那个人出列,他的下一个人又从k开始报数,数到m的那个人出列,依次重复下去,直到圆桌的人全部出列。试用C++编写实现。 解析:本题就是约瑟夫环问题的实际场景,要通过输入n、m、k三个正整数,求出列的序列。这个问题采用的是典型的循环链表的数据结构,就是将一个链表的尾元素指针指向队首元素: p->link=head; 解决问题的核心步骤如下: (1)建立一个具有n个链节点、无头节点的循环链表。 (2)确定第一个报数人的位置。 (3)不断的从链表中删除链节点,直到链表为空。 答案:#incl 阅读全文