📄 约瑟夫环的算法.c
字号:
#include "stdio.h"
#include "malloc.h"
#define M 50
typedef struct node{
int data;
struct node *link;}JD;
void Josephu(int n,int s)
{
JD *h,*p,*q,*r;
int i,j,l[M],k=1;
h=(JD*)malloc(sizeof(JD));
h->data=1;
r=h;
for(i=2;i<=n;i++)
{ p=(JD*)malloc(sizeof(JD));
p->data=i;
r->link=p;
r=p;
}
r->link=h;
printf("The list is: ");
p=h;
for(i=1;i<=n;i++)
{ printf("%d",p->data);
p=p->link;
}
printf("\n");
q=NULL;
p=h;
j=1;
do
{
while(j!=s)
{ j++;
q=p;
p=p->link;
}
l[k]=p->data;
q->link=p->link;
free(p);
p=q->link;
j=1;
k++;
}while(p->link!=p);
l[k]=p->data;
printf("The sort is: ");
for(i=1;i<=k;i++)
printf("%d",l[i]);
printf("\n");
}
main()
{
int n,s;
printf("input n and s:");
scanf("%d,%d",&n,&s);
Josephu(n,s);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -