有人能帮忙解决这个问题吗?
本帖最后由 ajxbobo 于 2020-5-5 15:06 编辑约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数。从第一个人开始顺时针方向自1起顺序报数,报到m时停止并且报m的人出列,
再从他的下一个人开始重新从1报数,报到m时停止并且报m的人出列。如此下去,直到所有人全部出列为止。要求设计一个程序模拟此过程,对任意给定的m和n,求出出列编号序列。用顺序表实现。
(求代码和思路。最好能有较为详细的思路和注释)你们能帮帮我吗?!!!拜托了!!
抱歉,之前忘记了写了需要用 C语言来写 请问是什么语言?
如果有布尔类型的话,就做一个布尔类型的数组(如果没有用整形也可以代替——出列了为 0 没出列为 1)
数组默认全是 1
反复循环,如果出列了就把元素变成 0 liuzhengyuan 发表于 2020-5-2 22:18
请问是什么语言?
如果有布尔类型的话,就做一个布尔类型的数组(如果没有用整形也可以代替——出列了为 ...
是数据结构与算法 冰河星云 发表于 2020-5-3 08:14
是数据结构与算法
好吧{:10_269:}
ta说求代码与思路的呀 liuzhengyuan 发表于 2020-5-3 08:15
好吧
ta说求代码与思路的呀
好像用的是c语言 1. 初始化一个 n 个节点的环形链表,每个节点有对应的编号
2. 设置 current = head,index = 1
3. current = current ->next, index += 1
4. if index == m;temp = current; delete(current); current = temp->next 设置 index = 1,
5. if current == current.next; return
6. goto 3
页:
[1]