![55c1813b706a79110e58bc01248cb336.png](https://img-blog.csdnimg.cn/img_convert/55c1813b706a79110e58bc01248cb336.png)
C语言「抄作业」系列之约瑟夫环(循环单链表)
约瑟夫环(Josephus problem)
1世纪的犹太历史学家Josephus曾经记载有以下故事:罗马人占领乔塔帕特后,Josephus和40个犹太战友躲到一个洞中,大家选择死亡,并以抽签的方式决定死亡顺序。41个围成圆圈,依次报数。每报到3的人死亡,然后从下一人起重新报数,直至所有人死亡。当只剩下Josephus和另外一人时,Josephus说服了那个人,一起向罗马军队投降。
约瑟夫环,即根据以上故事,求得Josephus与另外一人最初的位次。另一人与Josephus与分别位于第16、第31的位置上。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define elemType int /* 循环单链表元素数据类型 */
#define LNODE_SIZE sizeof (struct lNode) /* 循环单链表结点空间大小 */
#define OVERFLOW -1 /* 内存溢出状态码 */
/* 循环单链表数据结构 */
typedef struct lNode {
elemType data;
struct lNode *next;
} lNode, *clinkList;
/***************