n 个人围成一圈,从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
输入格式
输入两个整数 n,mn,m。
输出格式
输出一行 nn 个整数,按顺序输出每个出圈人的编号。
输入输出样例
输入 #1
10 3
输出 #1
3 6 9 2 7 1 8 5 10 4
题解
#include <bits/stdc++.h> using namespace std; typedef struct LNode { int date; struct LNode *next; }LNode,*LinkList; int main() { int n,m; cin>>n>>m; LinkList head = new LNode(); head->next = NULL; LNode * p = head; for(int i = 1; i <= n;i ++) { LNode *s = new LNode(); s -> date = i; p -> next = s; p = s; } p -> next = head -> next; p = head; while(n--) { for(int i = 0;i < m - 1; i ++) { p = p->next; } LNode *s = p -> next; cout<<s->date<<" "; p ->next = s ->next; } }