题解
【基础】约瑟夫问题
1 条题解
-
0
#include <bits/stdc++.h> using namespace std; vector<int> v; int main(){ int n,m,i; cin>>n>>m; for(i = 1;i <= n;i++){ v.push_back(i); } int c = -1; while(v.size() != 1){//能删除 //要删第m个数 c = (c + m) % v.size();//下标从0开始的位置 // cout<<c<<" "<<v[c]<<endl; v.erase(v.begin() + c);//删除第c个数字 c--;//删除位置往前调一个 } cout<<v[0]<<endl;//最后一个剩余编号 }
- 1