鏈接:
2682. 找出轉圈游戲輸家
題意:
環形1到n,從1開始,每次移動 第i次*k ,當移動到出現過的序號時停下,
求沒移動到的數字
解:
簡單模擬題,我也以為有數學做法,可惡
實際代碼:
#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;
}
限制:
1 <= k <= n <= 50