首页 > 作文

C语言版约瑟夫问题算法实现

更新时间:2023-04-04 09:07:02 阅读: 评论:0

1、问题描述:

n个人围坐一圈,现从第s个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列.如此下去,直到所有人都出列为止.试设计确定他们出列次序序列的程序

2、算法步骤:

1、确定存储结构:n个人围成一圈,故使用循环单链表来古诗春望存储序号

2、算法实现:

该问题共n、m、s三个未知量,所以可以通过三个循环来实现,第一个循环用来确定最开始第一个报数的人的指针位置(单链表的头节点指针指向第s个人),第二个循环用来控制输出序号的次数(共n次),第三个循环用火龙果的英文来数数(每一次循环使指针移动m次)

3、实现美丽英文源代码:

# include <stdio.h># include <malloc.h> typedef struct node{int number;struct node * pnext;}node, *pnode; pnode creat_list(int n); int main (void){int n,m,s;printf("约瑟夫环问题:\n");printf("设有n(编号为“0 1 2 3 .....n-1 n”)个人围坐一圈,现从2015什么年第s个人开始报数,数到m的人出列,\n求最后的出列顺序。\n");printf("请设置n, s, m :\n");printf("n = ");scanf("%d", &n);printf("s = ");scanf("%d", &s);printf("m = ");scanf("%d", &m);                    //问题引导提示代码段  pnode phead = null;phead = creat_list(n);     phead->number = 1;                   //创建单链表 pnode p = phead;            伤感的昵称           //定义头指针int i,j,k;                            //定义循环参数for(j = 1; j < s; j++){p = p->pnext;}                                //第一个循环确定第一个报数的人在循环单链表中的位置   for(i = 1; i <= n; i++)              //外部循环代表遍历到最后一个所需要的循环次数{for(k = 1; k < m; )              //内部循环代表遍历出列的人{if(p -> pnext -> number != 0){p = p -> pnext;k++;}el{p = p -> pnext;}}printf("%d  ",p -> number);p -> number = 0;    do{    p = p -> pnext;}while(p -> number == 0); }printf("\n");return 0;}pnode creat_list(int n)                        //单链表的创建{pnode phead = (pnode)malloc(sizeof(node));    pnode ptail = phead;int i;    for(i = 2; i <= n; i++){pnode pnew = (pnode)malloc(sizeof(node));pnew->number = i;ptail->pnext = pnew;pnew->pnext = phead;ptail = pnew;}return phead;}

到此这篇关于c语言版约瑟夫问题算法实现的文章就介绍到这了,更多相关c语言约瑟夫问题内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 09:07:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/7dcb42f9ea47568ce36fe55b196d66e2.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C语言版约瑟夫问题算法实现.doc

本文 PDF 下载地址:C语言版约瑟夫问题算法实现.pdf

标签:的人   约瑟夫   第一个   指针
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图