#include<stdio.h>
#include<stdlib.h>
typedef struct people
{
int number;
int live;
struct people* next;
}People;
int main()
{
int number,count,save;
scanf("%d,%d",&number,&count);
People *head=(People*)malloc(sizeof(struct people));
head->number=-1;
head->next=NULL;
People* tail=(People*)malloc(sizeof(struct people));
tail=head;
int cnt=0;
save=number;
while(number--)
{
cnt++;
People *p=(People*)malloc(sizeof(struct people));
p->live=1;
p->next=NULL;
p->number=cnt;
tail->next=p;//形成循环链表
p->next=head->next;
tail=p;
}
cnt=0;
int live=save;
while(live>0)
{
People* p=head->next;
while(p)
{
if(cnt==count&&p->live==1)
{
if(live>=2)
{
p->live=0;
live--;
cnt=0;
printf("%d,",p->number);
}
else
{
p->live=0;
live--;
cnt=0;
printf("%d",p->number);
}
}
if(p->live==1)
cnt++;
p=p->next;
if(live<1)
break;
}
}
return 0;
}
数据结构第一次作业第一题(约瑟夫环)
最新推荐文章于 2021-09-18 23:09:03 发布