- #include
- #include
- #include
- using namespace std;
-
- int main()
- {
- ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
- int n, m, cnt = 1; cin >> n >> m;
- if (n <= 1 || n >= 100 || m <= 1 || m >= 100 || m >= n) return 0;
- list<int> lt(n);
- iota(lt.begin(), lt.end(), 1);//编号的赋值
- auto it = lt.begin();
- while (lt.size() > 1)//保证只剩一个人
- {
- //不管是否被枪毙,it都要往后移动
- if (cnt % m == 0) it = lt.erase(it);//返回被枪毙的下一个迭代器
- else it++;
- cnt = (cnt == m ? 1 : ++cnt);
- if (it == lt.end()) it = lt.begin();//到尾部就转为表头
- }
- cout << *it;
- return 0;
- }