菜鸟一个,开始记录一下学习过程,学习中参考了大佬的代码,对数据结构的一些用法还是不够熟练,练了练手。
对问题的思考还是不够,起初没有考虑那个循环的问题,还有很长的路要走
#include<bits/stdc++.h>
using namespace std;
int main()
{
/*使用队列,标记表头,然后取出,条件判断,如果不符合淘汰条件,再将其置入,直到剩一个数为止。*/
int n,k;
queue<int> l;
int num=1;
cin>>n>>k;
for(int i=1;i<=n;i++)
l.push(i);
while(l.size()>1)
{
int t=l.front();
l.pop();
if(num%k!=0&&(num-num/k*k)!=k)
{
l.push(t);
}
num++;
}
cout<<l.front()<<endl;
return 0;
}