时间限制: 1000 ms 内存限制: 65536 KB
提交数: 10954 通过数: 5588
NN个人围成一圈,从第一个人开始报数,数到MM的人出圈;再由下一个人开始报数,数到MM的人出圈;…输出依次出圈的人的编号。
【输入】输入NN和MM。
【输出】输出一行,依次出圈的人的编号。
【输入样例】8 5【输出样例】
5 2 8 7 1 4 6 3【提示】
【数据范围】
对于所有数据,2≤N,M≤10002≤N,M≤1000。
#includeusing namespace std; int main() { int m, n, a[1000], i; cin >> n >> m; for (i = 0; i < n; i++) a[i] = i + 1;//每个人的序号 int x = 0, y = 0;//x是被踢人数,y是说的数字 i = 0; while (x < n) { if (a[i] != 0) y++; if (y == m) { a[i] = 0;//被踢出去后将其序号变为0 y = 0; x++; cout << i + 1 << " "; } i++; if (i == n)i = 0;//不能在这写break,要是break,就只能循环一次 } }



