链接:
2682. 找出转圈游戏输家
题意:
环形1到n,从1开始,每次移动 第i次*k ,当移动到出现过的序号时停下,
求没移动到的数字
解:
简单模拟题,我也以为有数学做法,可恶
实际代码:文章来源:https://www.toymoban.com/news/detail-653417.html
#include<bits/stdc++.h>
using namespace std;
vector<int> circularGameLosers(int n, int k)
{
set<int>get;get.insert(1);
vector<int>ans;
int now=1,nextMove=k;
while(true)
{
now=(now+nextMove-1)%n+1;
if(get.count(now)==1) break;
get.insert(now);
nextMove+=k;
}
//cout<<endl;
for(int i=1;i<=n;i++) if(get.count(i)==0) ans.push_back(i);
return ans;
}
int main()
{
int n,k;cin>>n>>k;
vector<int>ans=circularGameLosers(n,k);
for(auto& a:ans) cout<<a<<endl;
return 0;
}
限制:文章来源地址https://www.toymoban.com/news/detail-653417.html
1 <= k <= n <= 50
到了这里,关于2023-08-16力扣每日一题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!