数组——约瑟夫问题
来源:互联网 发布:64位系统装32位mysql 编辑:程序博客网 时间:2024/06/05 06:32
求解约瑟夫问题:设有n个人站成一个圈,其编号为1——n,从编号为1的人开始顺时针“1,2,3...”循环报数,数到m的人出列,然后从出列者的下一个重新开始报数,数到m 的人又出列,如此重复进行下去,直到n个人都出列为止。要求输出这n个人的出列顺序。
算法思路:采用一维数组p[],先将n个人的编号存入p[0]——p[n-1]。从编号为1的人(下标t=0)开始循环报数,数到m的人(下标t=t+m-1%i),输出p[t]并将其从数组中删除,(即将后面的元素前移一位),因此每次报数的起始位置就是上次报数的出列位置,反复执行下去。
算法如下:
void josephus(int n,int m){int *p;p=new int [MaxSize];int i,t=0,j;for(i=0;i<n;i++){p[i]=i+1;}for(i=n;i>0;i--){t=(t+m-1)%i;cout<<p[t]<<" ";for(j=t+1;j<i-1;j++){p[j-1]=p[j];}}cout<<endl;delete []p;}
- 数组——约瑟夫问题
- 约瑟夫环问题——数组实现
- 约瑟夫环问题——初步了解+数组实现
- 数据结构—约瑟夫问题
- 约瑟夫问题(数组)
- 约瑟夫问题(数组)
- 约瑟夫环问题【数组】
- 约瑟夫问题-数组实现
- 约瑟夫环问题【数组】
- 数组模拟约瑟夫问题
- 约瑟夫环问题【数组】
- ytu2018——约瑟夫问题
- 约瑟夫问题的数组实现
- 数组解决约瑟夫环问题
- 数组解决约瑟夫环问题
- 约瑟夫问题的数组解法
- 随手小代码——约瑟夫出圈问题/约瑟夫环
- 黑马程序员——约瑟夫环问题
- 深度解析Linux根文件系统的挂载过程
- C++单态类声明
- 神奇的rownum功能
- q3的灯光效果
- 第91天的交易(2013-9-9)(-50)(-254)(数据单总盈利:737.35)(贵金属总盈利:-555)
- 数组——约瑟夫问题
- message from server: "Host is not allowed to connect to this MySQL server"解决办法
- 顺序构造单链表
- 即将时来运转了???
- 静态数组线性表 将两个集合插入另一个集合并排序
- 两个有序链表合并算法
- 两个链表合并算法
- 单向循环链表实现约瑟环问题
- 队列实现 杨辉三角的打印