[第1章 1.1e1] 约瑟夫问题

67 字
1 分钟
[第1章 1.1e1] 约瑟夫问题
//注意使用erase操作后赋值一定要判断迭代器合法性
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){
ll n,m;
cin>>n>>m;
list<ll> nd;
ll nn;
for(ll i=1;i<=n;i++)nd.push_back(i);
ll st=nd.size();
auto it=nd.begin();
while(nd.size()>0){
for(ll i=0;i<m-1;i++){
it++;
nn=*it;
if(it==nd.end())it=nd.begin();
}
if(nd.size()!=st)cout<<" ";
cout<<*it;
it=nd.erase(it);
if(it==nd.end())it=nd.begin();
}
cout<<endl;
}
int main(){
solve();
return 0;
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
[第1章 1.1e1] 约瑟夫问题
https://hecloud.top/posts/11e1-约瑟夫问题/
作者
贺小云
发布于
2026-06-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
贺小云
一个热爱技术与折腾的博客,serverless起高楼,静态构建一键走,专注于CDN调优,2秒之内到德州。
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
碎碎念
站点统计
文章
46
分类
4
标签
0
总字数
23,903
运行时长
0
最后活动
0 天前
站点信息
构建平台
Netlify CI
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0

当前页面没有目录