题解 | 约瑟夫环
约瑟夫环
https://www.nowcoder.com/practice/e417cfe32c74416ca38247f619ddb322
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
void solve(){
//输入
int n,k,m;
cin>>n>>k>>m;
m %= n;
vector<int> arr(n);
//每个数组元素记录编号
for(int i=0;i<n;i++){
arr[i]=i;
}
int len=n;
while(len>1){
k = (k+m-1)%len;//每次找到要删除的下标,灵感来源于数据结构循环队列
arr.erase(arr.begin()+k);//删除对应编号
len--;
}
cout<<arr[0];
}
int main() {
solve();
return 0;
}
查看24道真题和解析