约瑟夫循环(数组模拟环)
来源:互联网 发布:astropad for mac 编辑:程序博客网 时间:2024/06/06 08:29
/* 最普通的约瑟夫环的写法,用一个数组来模拟一个环,什么算法都没用,以前又看到过链表版本的, 队列版本的。。。。但是,最神犇你的还要属于位运算版本的。。虽然那个现在还没有学会,以后 会认真的学习的。 关键的几个要点:do-while的循环终止条件,出队人数的统计,报数器,一个随时跟着所有人编号的变量 bool 类型的数组。*/# include<cstdio># include<iostream>using namespace std;# define MAX 100+10bool a[MAX];//开一个布尔逻辑类型的数组,用来表示队伍中每个人的状态。false表示在队列中,true表示已经出队int main(void){ int n,m;cin>>n>>m; for ( int i = 1;i <= n;i++ ) a[i] = false;//一开始将所有人都在这个队列中啊 int t,f,s; t = f = s = 0;//do-while前的初始化 do { t++;//从第一个人开始依次报数了~ if ( t == n+1 ) t = 1;//用数组来模拟一个环,经常使用的一个技巧 if ( a[t]==false ) s++;//如果这个位置还有人在的话,就报数加一 if ( s==m ) {//报啊报,终于报到我们要找的那个人了~ s = 0;//报数器从此清0 cout<<t<<endl;//输出这个人的编号 a[t] = true;//这个人就从此滚出了队列 f++;//出队人数加一 } }while( f!=n );//牛逼的结束条件 return 0;}
注释做的很详细了,话说刚山口山结束,写到水题热热身~~~~注释写的很清楚了,看不懂的话手模下,很快就能出结果了,
0 0
- 约瑟夫循环(数组模拟环)
- 约瑟夫环(数组模拟实现)
- 约瑟夫环问题(双向循环链表模拟)
- 循环链表实现约瑟夫环(动态数组实现)
- 数组实现约瑟夫循环
- 数组模拟约瑟夫问题
- 约瑟夫环(纯模拟)
- zoj1088(模拟/约瑟夫环)
- 约瑟夫环(约瑟夫问题) 采用循环单链表实现
- JAVA程序设计(13.1)---- 循环 数组 应用复习,约瑟夫环问题
- C_数组-循环-递归分别处理约瑟夫环
- 约瑟夫问题 数组(最好还是用循环指针)
- C# 小程序之新手练习(三)数组模拟约瑟夫环
- poj3032类似约瑟夫环(用数组做,模拟完可以知道初始位置)
- 约瑟夫环问题的两种解决方式(递归求解和数组模拟求解)
- 约瑟夫环的实现---数组模拟链表
- 【刷题小记】用数组模拟约瑟夫环
- 约瑟夫问题--list模拟循环链表
- 课后作业
- 从测试到开发的转变
- java HashMap中出现重复的key, 求解释
- windows下配置opengl开发环境
- uva 10344
- 约瑟夫循环(数组模拟环)
- 连载《一个程序员的成长历程》-12.费尽心力的平台化构想
- java动态代理(JDK和cglib)
- 将摄氏温度转换成华氏温度
- Android基础开始进阶提升方案
- [ACM Steps] 1.3.5 排序2
- [解题报告]hdoj1269(强连通tarjan)
- Lucene中的MMAnalyzer中文分词器
- Spring3.x_Struts2.x_Hibernate3.x整合之声明式事务配置