用能看的懂的方法模拟约瑟夫环
来源:互联网 发布:义乌管家婆软件jhgjp 编辑:程序博客网 时间:2024/06/13 12:17
约瑟夫环:
知识点:
代码实现:
#import <Foundation/Foundation.h>
//从编号为k的人开始报数
#define K 1
// 数到M的人出列
#define M 4
// 总人数N
#define N 15
int main(int argc,constchar * argv[]) {
//把“人”存在一个数组里面
int p[N] = {0};
//这个数组用来保存出列的人
int b[N] = {0};
// 定义变量
int count = 0; // 计数器数到M个人后出列
int num = 0;// 循环结束计数器 保证N个人全出来后停止循环
int index = 0;// 定义一个变量记录存储位置
//让人拿上个随机的编号10 ~ 100,看到这个数就代表这个人
for (int i = 0; i <N; i++) {
p[i] =arc4random() % (100 - 10 + 1) + 10;
printf("%d\t" , p[i]);
}
//人没有出来完就一直循环
while (num < 15) {
for (int i = 0; i <N; i++) {
if (p[i] != 0) {
count++;
//如果 count = M出列,报道这个数的人出列
if(count == M){
// 将出圈的元素按序存储在b中
b[index++] = p[i +K - 1];
// 将出圈的元素赋值为 0 ; 以后不在记录
p[i] = 0;
// 将出圈计数器count重置为0;
count = 0;
// 出列计数器 num +1;
num++;
}
}
}
}
printf("\n出列顺序为:\n------------------------------------\n");
// 打印出圈的值
for (int i = 0; i <N; i++) {
printf("%d\t" , b[i]);
}
return 0;
}
- 用能看的懂的方法模拟约瑟夫环
- uvaoj-133:约瑟夫环的模拟
- 约瑟夫环的数学方法
- 约瑟夫环的数学方法
- 约瑟夫环的实现---数组模拟链表
- uva133 The Dole Queue ( 约瑟夫环的模拟)
- 解答约瑟夫环问题的几个方法
- 约瑟夫环的数学优化方法
- 约瑟夫环的实现-链表方法
- 约瑟夫环的数学优化方法
- 约瑟夫环的数学优化方法
- 约瑟夫环的数学优化方法
- 约瑟夫环java实现的方法
- 约瑟夫环的递推方法
- 约瑟夫环的问题解决方法与分析
- 约瑟夫环的数学优化方法
- 约瑟夫环各种实现方法的总结
- 约瑟夫问题的数学方法
- 设计模式1--单例模式
- Javascript的this用法
- ubuntu shell不兼容
- mod_jk负载均衡 Request Entity Too Large
- 资源记录
- 用能看的懂的方法模拟约瑟夫环
- Valid Parentheses
- iOS-添加pch文件
- iOS 集成银联支付
- 设计模式:“六大设计原则”
- Word2010怎么绘制斜线表头
- Spring学习笔记-Spring容器
- 安卓开发黄金搭档:android-studio+Genymotion模拟器
- java控制台中打印万年历