题目:
已知n个人(以编号1,2,3--n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人有出列;以此规律重复下去,知道圆桌周围的人全部出列。输出出列顺序和最后剩下的人。
分析:

这道题用我们平常的数组也能做,只不过要用到那个取模,

上代码:

#include <iostream>

using namespace std;
int main(void)
{

int n,p=0,m,k=0;
cin>>n>>m;
int arr[n];
for(int i=0;i<n;i++)
{
    arr[i]=i+1;
}
while(n>1)
{
    p=(p+m-1)%n;
    cout<<++k<<" "<<arr[p]<<endl;
    for(int j=p+1;j<n;j++)
    {
        arr[j-1]=arr[j];
    }
    n--;
    if(p==n) p=0;
}
cout<<"最后剩下的是"<<arr[p]<<endl;
return 0;

}