C语言

c语言约瑟夫问题输出序号算法

时间:2023-04-01 22:45:46 C语言 我要投稿
  • 相关推荐

关于c语言约瑟夫问题输出序号算法

  约瑟夫问题

  #include#includetypedef struct node{int data;struct node *next;}LNode,*LinkList;int YSF(LinkList m,int n,int l);void main(){int x,y,z;LinkList p,q,r;//p用来指向第一个人,r、q用来实现尾插法构建链表p=(LinkList)malloc(sizeof(LNode));printf("请输入总人数:");scanf("%d",&x);printf("请输入报数大小:");scanf("%d",&y);printf("请输入报数开始人序号:");scanf("%d",&z);r=p;for(int i=1;i<=x-1;i++){q=(linklist)malloc(sizeof(lnode));r->data=i;r->next=q;r=q;}//创建x个单链表q->data=x;q->next=p;//构成循环链表for(int j=1;j<=z-1;j++){p=p->next;}//找到开始报数人printf("请输入序号:");int o;scanf("%d",&o);YSF(p,y,o);}int YSF(LinkList m,int n,int l){while(m->next!=m){for(int k=1;knext;}int s=1;if(l==s){printf("编号为%d的人出列 ",m->next->data);break;}else {n++;}m->next=m->next->next;//剔除满足报出y人的结点m=m->next;}if(m->next==m)printf("编号为%d的人出列 ",m->data);return 0; }

【c语言约瑟夫问题输出序号算法】相关文章:

C语言如何输出菱形11-08

C语言怎么输出一个菱形04-26

C语言函数参数传递问题03-22

C语言二分查找(折半查找)算法及代码11-16

C语言初始化效率问题及关键字解释03-17

怎样学习c++c语言编程04-28

C语言入门知识07-20

C语言的编码规范02-10

C语言的基本构成12-05

c语言的优点介绍04-13