有n个人依次围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出列的顺序。
#include<iostream> #include<queue> using namespace std; int n,m,k=1,tmp; queue<int> arr; int main() { cin>>n>>m; for(int i=1;i<=n;i++) _____(1)____//依次进入队列 while(_____(2)_____)//判断队列里是否还有人 { tmp=arr.front(); if(k%m==0) cout<<tmp<<" "; else ______(3)______//如果不是第m个人,则重新入队 _____(4)_____//从队列里删除 k++; } return 0; }