已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
采用顺序存储结构中的数组实现。
每次出队了一个人,将这个位置后面的所有数往前移一个位置,将此数覆盖,数组的有效长度也相应的减1
每次出队的人的下标为:
len为每次循环中环的人数,m为数到m的人出队
index=(index+m-1)%len
为什么要取余len? C++实现代码:
当m>len时,可以保证出队人的下标总是 >=0 ,#include
>n;
int *arr=new int[n];
for(int i=0;i



