C语言实现约瑟夫环
Q:约瑟夫环问题 :已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
A:这里采用循环单链表的方法
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(struct LNode)
typedef int datatype;
typedef struct LNode {
datatype data;
struct LNode *next;
}LNode, *LinkList;
int N, S, M;
LinkList L, Start;
void Question();
void Creat_LinkList(int n);
void Find_start(int n);
void Find_delete();
int main()
{
Question();
Creat_LinkList(N);
Find_start(S);
Find_delete();
return 0;
}
void Question()
{
` printf("请输入总人数N(N < 50):");
scanf("%d", &N);
printf("\n\n\n\n");
printf("请输入第一个开始报数的人的编号S:");
scanf("%d", &S);
printf("\n\n