vector实现约瑟夫
来源:互联网 发布:反淘宝联盟2015 编辑:程序博客网 时间:2024/05/29 17:06
/*1. 读入优化 的 初识、约瑟夫实现 vector模拟实现过程: 先将每个元素放入 容器中 push_back(); for遍历将 n-1 个元素 在容器中删除 第t个元素 a.erase(a.begin()+t); 最后容器中的最后一个元素就是活下来的人*/#include<iostream>#include<stdio.h>#include<string>#include<string.h>#include<algorithm>#include<queue>#include<stack>#include<map>#include<cmath>#include<iomanip>using namespace std;typedef int _____I;const int N=1e6+10;const int INF=0x3f3f3f3f;#define ERX(___I,__I,_I) for(_____I ___I = __I;___I < _I; ___I++)#define ERD(___I,__I,_I) for(_____I ___I = __I;___I <= _I; ___I++)#define RED(___I,__I,_I) for(_____I ___I = __I;___I >= _I; ___I--)/* 定义一个int型 x f 定义一个char型得到一个字符 如果该字符不是数字 则再判断该字符是不是-号 如果是 就让f变-1 得到ch 如果该字符是数字就进行累计 x=x*10+ch-'0';ch=getchar(); 最后 返回总结果值 */int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n,m; //共n个人 每次隔m个人就去除此人 vector<int> a;int main(){ n=read();m=read(); for(int i=1;i<=n;i++) a.push_back(i); int t=0; cout<<"依次需要删除的点:"<<endl; for(int i=1;i<n;i++){ t=(t+m-1)%a.size();//元素下标是从0开始 因此要减一 cout<<a[t]<<endl; a.erase(a.begin()+t); } cout<<endl<<endl; for(int i=0;i<a.size();i++) cout<<a[i]<<endl; //最后只剩余一个 return 0;}
阅读全文
0 0
- vector实现约瑟夫环
- vector实现约瑟夫
- C++vector实现约瑟夫环
- 利用vector实现约瑟夫环的打印
- Josephus约瑟夫环问题STL模版类vector实现
- 【约瑟夫】编程实现约瑟夫环
- UVA130 HDU1628 Roman Roulette【vector】【约瑟夫问题】
- vector实现
- vector实现
- vector 实现
- vector实现
- 实现vector
- vector实现
- 约瑟夫问题C++实现
- 约瑟夫问题C++实现
- “约瑟夫问题”实现代码
- 约瑟夫环(VC++实现)
- java实现约瑟夫环
- 年度目标进度和完成进度对比
- maven环境下的ssm架构的pom.xml文件
- 将.der证书合并到.p12证书的方法步骤
- MySql配置文件详解以及MySql服务自启动
- 欢迎使用CSDN-markdown编辑器
- vector实现约瑟夫
- Netty【一】 NIO入门
- MySQL的连接参数---MySQL进不去error:'Too many connections'
- 剑指Offer-6:从尾到头打印链表
- 重入函数
- IPC基础概念介绍第三篇(Messenger)
- spring的工作原理
- CSS in JS 简介
- 登录注册(MVp)