约瑟夫环问题
2015-12-03 17:46
316 查看
//有n个人围成一个圈,编号1~n,从第1个开始报数,当报到m时该人出队,然后下一个人从1开始继续报数。 //输出所有人出队的顺序。 1 #include <stdio.h> int main(int argc, char *argv[]) { int a[1000]={0}; int i,n,m; int count1;//出队人数 int count2;//当前人报的数字 scanf("%d%d",&n,&m); count1=0;//还没人出队 count2=0;//当前报数 i=0;//需要检查的人的下标 while(count1<n)//还有人没有出队就继续循环 { while(a[i]!=0)//寻找下一个还没出队的人 { i++; if(i==n) i=0; } count2++;//找到一个没出队的人,该人报数 if(count2==m)//假如第i人报数m则他出队 { printf("%d\n",i+1); a[i]=1; count1++; count2=0; } i++;//下次应该检查下一个人 if(i==n) i=0; } return 0; }
相关文章推荐
- 为nginx配置https并自签名证书
- 详解Maven 构建SpringMVC4.0
- Python单元测试浅析
- Ubuntu下ImageMagick编译安装出现的问题.
- 不要为了学习而去工作,工作的目的是钱,请以钱为核心
- Android动态加载黑科技 动态创建Activity模式
- scala小魔法
- 流水账-20151203-spring IOC源码分析
- 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(一)
- [Android]从Launcher开始启动App流程源码分析
- 如何不通过SIM卡直接读或写短消息
- 如何不通过SIM卡直接读或写短消息
- MYSQL重装问题解决
- 循环语句-JTable与 removeRow
- 【C语言】printf函数详解
- jQuery 1.9后给动态添加的元素绑定事件
- 利用UIButton简单实现TOM猫
- Android设置Settings:预读取设置的选项和更新设置结果【2】
- 纯js上传控件——fineuploader
- 如何不通过SIM卡直接读或写短消息