php面试约瑟夫环问题,面试系列2--约瑟夫环问题(Josephus)

这篇博客介绍了如何用C语言解决约瑟夫环问题。用户输入M和N值,程序通过顺序循环数数的方式,每数到M时输出该数值,直至所有N个数都被输出。程序利用不带头结点的循环链表来表示环,并使用顺序表记录退出顺序。文章提供了详细的代码实现,包括链表操作和退出顺序的存储过程。
摘要由CSDN通过智能技术生成

8eec6e36d95ddf996799888e8ff1e565.png

原题:

用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)

提示:

由于当某个人退出圆圈后,报数的工作要从下一个人开始继续,剩下的人仍然是围成一个圆圈的,可以使用循环表,由于退出圆圈的工作对应着表中结点的删除操作,对于这种删除操作频繁的情况,选用效率较高的链表结构,为了程序指针每一次都指向一个具体的代表一个人的结点而不需要判断,链表不带头结点。所以,对于所有人围成的圆圈所对应的数据结构采用一个不带头结点的循环链表来描述。设头指针为p,并根据具体情况移动。

为了记录退出的人的先后顺序,采用一个顺序表进行存储。程序结束后再输出依次退出的人的编号顺序。由于只记录各个结点的number值就可以,所以定义一个整型一维数组。如:int quit[n];n为一个根据实际问题定义的一个足够大的整数。

代码:

/********************************************************************

created: 2006/06/14

filename: C:\Documents and Settings\Administrator\桌面\tmpp\josephus.c

file path: C:\Documents and Settings\Administrator\桌面\tmpp

file base: josephus

file ext: c

author: A.TNG

version: 0.0.1

purpose: 实现 Josephus 环问题

用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,

直至全部输出。写出C程序。(约瑟夫环问题 Josephus)

2829f2ca24f0d0090cbba57f30759f23.png

面试系列2--约瑟夫环问题(Josephus).doc

下载Word文档到电脑,方便收藏和打印[全文共666字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值