设有顺序编号为1至n的n个人,按顺时针顺序站成一个圆圈。首先从第一个人开始,从1开始顺时针报数,报到第m(<n)个人,令其出列。然后再从出列的下一个人开始,从1顺时针报数,报到第m个人,再令其出列,……,如此下去,直到圆圈不再有人为止。求这n个人出列顺序。
数组方式一 (使用一个结构体):
数组方式二 (数组中元素初始化为1~n,为0表示此人out):
链表方式 (构造一个循环链表):
本文探讨了经典的约瑟夫环问题,并提供了三种不同的实现方案:使用结构体数组、使用带有标记的数组以及构建循环链表。每种方法都有详细的代码示例,帮助读者理解如何通过编程解决这一问题。
设有顺序编号为1至n的n个人,按顺时针顺序站成一个圆圈。首先从第一个人开始,从1开始顺时针报数,报到第m(<n)个人,令其出列。然后再从出列的下一个人开始,从1顺时针报数,报到第m个人,再令其出列,……,如此下去,直到圆圈不再有人为止。求这n个人出列顺序。
数组方式一 (使用一个结构体):
数组方式二 (数组中元素初始化为1~n,为0表示此人out):
链表方式 (构造一个循环链表):

被折叠的 条评论
为什么被折叠?