永发信息网

用链表方法解决,13个人围一圈,从第一个人开始顺序报号1,2,3,报到3者退出圈子,找出最后留在圈子的人的序号

答案:2  悬赏:80  手机版
解决时间 2021-01-20 20:47
  • 提问者网友:溺爱和你
  • 2021-01-20 17:25
用链表方法解决,13个人围一圈,从第一个人开始顺序报号1,2,3,报到3者退出圈子,找出最后留在圈子的人的序号
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-01-20 18:14
#include
#include
int main()
{
struct king{
int data;
struct king *next;
};
int i,m,n;
scanf("%d%d",&n,&m);
struct king *p,*head,*t,*tmp;
head=(struct king*)malloc(sizeof(struct king));
head->next=NULL;
head->data=1;
p=head; //循环链表
for (i=2;i<=n;i++)
{
t=(struct king*)malloc(sizeof(struct king));
t->data=i;
t->next=NULL;
p->next=t;
p=p->next;
}
p->next=head;
p=head; //删除链表
while(p->next!=p)
{
for(i=1;i p=p->next;
tmp=p->next;
p->next=p->next->next;
p=tmp->next;
free(tmp);

}
printf("%d",p->data);
getchar();
getchar();
return 0;
}
你只要输入 13 3 就OK
全部回答
  • 1楼网友:零点过十分
  • 2021-01-20 18:33
循环链表啊,自己不写,永远也不会。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯