如何实现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安全错误
数据库的锁怎样保障安全
互联网最新的科技有限公司
碳银互联网科技
上海喔噻互联网科技
丰台科技园 互联网
互联网科技大会
互联网科技素材视频竖屏
新华互联网科技2019
哈尔滨新华互联网科技学院
重庆互联网医院沙龙医盟信息科技
武汉健翔互联网络科技有限公司
宝灵互联网科技有限公司
青岛科技大学互联网大赛研究生
新兴科技互联网创新大赛颁奖典礼
注册互联网科技公司经营范围大全
互联网科技研发水平
广州新华互联网科技学校电竞方面
科技互联网的核心竞争力
上海互联网科技公司ppt
科技和互联网行业的特点
盐城市攀科互联网科技有限公司
互联网电商科技
贷财互联网科技
互联网科技汛
互联网科技宣传片
汽车互联网创新科技园
链环科技传统企业怎么转型互联网
济南有互联网科技公司吗
东营紫格互联网科技
扫呗互联网科技有限公司
中国互联网公司的科技投入