如何实现C语言版约瑟夫问题算法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"如何实现C语言版约瑟夫问题算法",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何实现C语言版约瑟夫问题算法"这篇文章吧。1、问题
千家信息网最后更新 2026年11月02日如何实现C语言版约瑟夫问题算法
这篇文章主要为大家展示了"如何实现C语言版约瑟夫问题算法",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何实现C语言版约瑟夫问题算法"这篇文章吧。
1、问题描述:
有n个人围坐一圈,现从第s个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列.如此下去,直到所有人都出列为止.试设计确定他们出列次序序列的程序
2、算法步骤:
1、确定存储结构:n个人围成一圈,故使用循环单链表来存储序号
2、算法实现:
该问题共n、m、s三个未知量,所以可以通过三个循环来实现,第一个循环用来确定最开始第一个报数的人的指针位置(单链表的头节点指针指向第s个人),第二个循环用来控制输出序号的次数(共n次),第三个循环用来数数(每一次循环使指针移动m次)
3、实现源代码:
# include# include 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")个人围坐一圈,现从第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++; } else { 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语言版约瑟夫问题算法"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
循环
问题
个人
算法
约瑟
约瑟夫
指针
语言
三个
内容
篇文章
位置
序号
次数
存储
学习
帮助
代码
代表
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
科技赋能下的互联网金融
麻工互联网科技
紫鲸互联网科技
安徽鑫晟辉互联网科技
美国互联网黑科技
沃里互联网科技
时间互联网络科技
互联网科技大会案例
成都玖崟互联网科技有限公司乐商圈怎么样
科技与互联网的利与弊
黑科技闪耀互联网之光
互联网科技与大数据专业
恒生互联网科技业指数调整周期
南通创西澳互联网科技有限公司
21世纪互联网科技成就
九思连强互联网电子科技有限公司
互联网科技新闻
安徽零酒互联网科技有限公司
青岛易易互联网科技
喔噻互联网科技有限公司
互联网科技行业发展
有木互联网科技
滨湖区互联网智能科技产品供应
四川慕妮娅互联网科技有限公司
滨湖区互联网智能科技产品有哪些
上海京穆互联网科技有限公司
互联网科技股为什么大涨
互联网硬科技公司
马化腾互联网科技教学