约瑟夫循环问题

用循环队列求解约瑟夫环问题 用循环队列求解约瑟夫环问题 大家好,这次我们来求解求解约瑟夫环问题,并对比用循环队列和用普通形式求解之间的不同之处。也欢迎各位大佬指正。 目录如下可快速查阅问题描述循环队列求解算法描述程序清单运行结果普通形式求解算法描述程序清单运行结果对比分析 问题描述 设有n个人站成一圈,其编号为1~n。从编号为1的人开始按顺时针方向1、2……循环报数,数到m的人出列,然后从出列者的下一个人重新开始报数,数到m... 阅读详情

约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

1.思路
先创建循环链表(尾插法) 再根据编号确定是第几个元素 再找到特定的节点进行删除(要知道节点的前一个节点)
2.需要的文件以及结构体内容在这里插入图片描述
3.创建循环链表(尾插法)
i++是先i再++
关键在于循环 tail -> next = head -> next
最后返回到头指针(第一个有数据的节点)
头节点可要可不要
在这里插入图片描述
4.一些可读性
在这里插入图片描述

5.确定是从第几个人开始报数的
可以根据其data来判断
在这里插入图片描述
6.数到m数的人出圈直到只剩下最后一个人 最后输出其值即可
在删除节点的时候要知道删除的前一个节点
在这里插入图片描述

c++循环列表解决约瑟夫环问题 约瑟夫环问题: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 编程思路:先建立一个循环链表,找到第一个报数的人,依次列出出列人的序号。 #include using namespace std; struct Node { in 阅读详情

相关推荐

顺序循环队列的应用:以约瑟夫环问题为例

简介:顺序循环队列是一种高效的数据结构,常用于计算机科学中处理大量数据,避免数组扩容开销。本文以约瑟夫环问题为例,深入解析顺序循环队列的应用。通过创建大小为n的顺序循环队列来模拟约瑟夫环中的报数过程,演示如何使用head和tail指针进行元素的入队和出队操作,并通过计数器来处理报数。同时,讨论了顺序循环队列在实际编程中的实现以及如何使用"报数.txt"文件作为输入来测试不同的约瑟夫环参数。

weixin_35094083的博客 1193

C语言——经典约瑟夫环问题(循环链表)

题目要求: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人自杀;他的下一个人又从1开始报数, 数到m的那个人又出列;依此规律重复下去,请问:最后一个存活的人编号是多少。 输入格式: 3个数n k m(含义如上题)输出格式: 最后一个出列的人编号。 样例输入: 6 1 2 样例输出: 5 算法思路: 约瑟夫环是一道经典的循环链表问题,每当报数到指定数字,那个人就出局,接下来的一个人重新开始报数,相当...

weixin_60576482的博客 2333

STM32+EC800M-CN 4G模块数据透传踩坑实录:从AT指令调试到花生壳内网穿透

本文详细介绍了STM32与移远EC800M-CN 4G模块的数据透传实现过程,包括硬件连接、AT指令调试、TCP连接建立以及花生壳内网穿透配置。通过实战案例和代码示例,帮助开发者快速解决4G通信模块在物联网应用中的常见问题,提升数据传输稳定性。

weixin_42715608的博客 328

约瑟夫问题 2011.04.08

<br />约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。<br />下例实现是:n=50, m=3<br /> <br /><br />#include <stdio.h><br />#define nmax 50<br /> <br />int main()<br />{<br />int k,m,num[nmax],*p;<br /

lingxiu0613的专栏 740

自学ROS完成智能小车路径规划(一)--配置功能包

此系列文章记录本人学习ros的过程,将会尽可能详细以便自己能够看懂 参考系列:古月居老师,优快云,ROS tutorials,科大讯飞智能车竞赛线上赛 本文章的目标: 比较全局路径规划算法中A*算法与Dijkstra算法在该地图场景下的规划与运行时间 比较局部路径规划算法中DWA算法与TEB算法在该地图场景下的规划与运行时间 在同等参数条件下选择出各自适合的算法进行融合,经过比较,我将选择dijkstra算法作为全局路径规划算法,TEB算法为局部路径规划算法 第一步,按照科大讯飞的教程配置文件 科大讯

weixin_42621524的博客 9366

用pyqtgraph 和pyqt5绘制股票K线图

# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'QWidget_plot.ui' # # Created by: PyQt4 UI code generator 4.11.4 # # WARNING! All changes made in this file will be lost!...

qq_23114283的博客 5429

循环链表(约瑟夫环)的建立及实现

循环链表和普通链表相比,唯一的不同就是循环链表首尾相连,其他都完全一样。只需要将链表中最后一个结点的指针指向头结点,就能形成循环链表: 循环链表实现约瑟夫环 约瑟夫环问题,是一个经典的循环链表问题,题意是:已知 n 个人(分别用编号 1,2,3,…,n 表示)围坐在一张圆桌周围,从编号为 k 的人开始顺时针报数,数到 m 的那个人出列;他的下一个人又从 1 开始,还是顺时针开始报数,数到 m 的那个人又出列;依次重复下去,直到圆桌上剩余一个人。 如图所示,假设此时圆周周围有 5 个人,要求从编号为 3 的

Lianuuu的博客 3259

手把手教你用XC7A35T FPGA搭建低成本机器视觉系统(含开发板选型指南)

本文详细介绍了如何利用AMD(原Xilinx)Artix-7系列中的XC7A35T FPGA芯片,搭建一套低成本的机器视觉系统。内容涵盖从芯片选型深度剖析、开发板(如黑金AX7035B)对比指南,到使用Vivado创建工程、编写图像处理模块(如RGB转灰度),以及资源优化和与上位机(如OpenCV)协同工作的完整流程,旨在为开发者提供一套可实践的高性价比硬件加速视觉解决方案。

beta5的博客 354

循环链表:约瑟夫问题(非常详细易理解)

约瑟夫问题来源 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus和他的朋友并不想遵从。首先从一个人开始,越过

重庆李四 2万+

ROS专栏—基于STM32F103的INA219电源数据采集

文章主要记录了stm32f103对ina219的数据采集

热爱生活、奋斗前行 2355

第8讲:基于CST PCB Studio的电源完整性仿真(IR Drop + PDN)

本文系统介绍了电源完整性(PI)仿真的两大核心模块:直流IRDrop仿真与交流PDN阻抗仿真。文章详细阐述了两种仿真的原理、算法(PEEC和3DFE-FD)及完整操作流程,包括参数配置、软件实操步骤和常见问题解决方案。IRDrop仿真用于分析直流供电压降问题,PDN仿真则针对高频电源噪声和谐振问题。文中还提供了优化建议和故障排查方法,如调整铜箔厚度、优化电容布局等,为高速数字系统的电源完整性设计提供了全面的技术指导。(149字)

一只豌豆象的博客 240

约瑟夫环问题两解

继续笔试准备ing……分享一下昨天做到的其中一题,其实题目很老,也做过n遍了,但复习起来也是颇有韵味,同时还发现另一种妙解,感觉不错的。问题描述:约瑟夫环问题(Josephus)用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)解法一(My Solution):思想:建立一个有N个元素的循...

weixin_30621959的博客 340

TC3XX - MCAL知识点(三):MCU EB-tresos配置说明及代码浅析

AURIX 2G Tc3xx的配置相较AURIX 1G Tc2xx来讲简化了许多,但是依赖于数据手册的理解来讲整个MCU功能做了较大增强,此处先简单的介绍一下,本文前期先补充介绍一下英飞凌手册的阅读规则,因为后面的文章会基于此文的一些缩写进行截图寄存器之类的。MCU在AUTOSAR架构里面的图示如下MCU驱动程序负责配置SCU、GTM、CCU6、GPT12和STM外设。驱动程序提供由AUTOSAR指定的运行时服务。

梦想技术家 2875

单向循环链表解决约瑟夫问题(C++)

在大厂面试时,经常会被提出实现约瑟夫问题。那么什么事约瑟夫问题呢? 约瑟夫问题: n个人围成一个圆圈,分别编号1~n,从第一个人开始顺时针报数为1,报到第m的时候。令其出列,然后再从下一个人重新开始报数,当从1报到m时,报m的人继续出列,以此重复下去,直到所有人都出列为止,求出列的序号。 当m=8,n=3时,删除序列如下所示: 最终删除的序列为:3、6、1、5、2、8、4、7。 C++中有一种数据存储结构与这种首尾相连的环形结构极为相似——单向...

qq_41696018的博客 7509

基于Python实现人脸识别相似度对比

随着人工智能技术的不断进步,人脸识别成为了一种广泛应用的技术。人脸相似度对比是其中的一个重要应用场景,可以用于人脸搜索、身份验证等方面。本文将介绍如何使用Python实现人脸相似度对比。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 9810

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

循环单向链表与约瑟夫问题

实现了单向循环链表的初始化、尾部插入、打印,然后利用单向循环链表解决了约瑟夫问题。

mrsushui的博客 1034

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

循环链表解决约瑟夫循环问题

循环链表解决约瑟夫循环问题循环链表什么是循环链表约瑟夫循环问题循环链表解决约瑟夫循环问题C++实现运行效果 循环链表 最近开始复习数据结构,今天手写了一个约瑟夫循环问题。 什么是循环链表 首尾相连的链表:head->last=tail;tail->next=head 建立循环链表和建立普通链表方法差不多,只需要首尾相连即可 约瑟夫循环问题 已知 n 个人(以编号1,2,3,…,n分别表示)围坐在一张圆桌周围,从编号为 k 的人开始顺时针报数,数到 m 的那个人出列;他的下一个人又从 1 还是顺

qq_45049373的博客 1538

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

循环链表解决约瑟夫问题

循环链表解决约瑟夫问题 前言 传说有这样一个故事,在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,第一个人从1开始报数,依次往后,如果有人报数到3,那么这个人就必须自杀,然后再由他的下一个人重新从1开始报数,直到所有人都自杀身亡为止。然而约瑟夫和他的朋友并不想遵从。于是,约瑟夫要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,从而逃过了这场死亡游戏 。 一、循环链表 循环链表,顾名思义

Mekeater的博客 3492

循环链表解决约瑟夫环问题

循环链表解决约瑟夫环问题

liu_shi_的博客 4401

约瑟夫循环报数问题

约瑟夫循环问题,根据http://blog.youkuaiyun.com/ZCSYLJ/article/details/6830703的文章写出自己的一些心得体会。    首先在一个序列中,假如该序列有n个元素,并且以m报数。假设给这个序列进行编号,第一个为0,第二个为1.......则这个序列就是0,1,2,3,........n-1    那么第一个出来的人必然是m%n-1。之后便是一个思维的关键点,

scanferror的博客 1111

循环单向链表解决约瑟夫问题

约瑟夫问题: 设编号为1,2,…n的人围成一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人再出列,以此类推,直到所有人都出列,由此产生出一个出队列编号的序列。 这里n个人围成一圈,依次出队,这跟我们学到到的循环链表很像,因此我们就通过循环链表来模拟出队情况。 首先,需要设计一个节点类型Person,包含num和next两...

旧时明月丶 355

约瑟夫问题的解答(循环单链表)

// 循环链表.cpp : 定义控制台应用程序的入口点。 //约瑟夫问题的解答 /* 约瑟夫问题的原理: 编号为1~N的N个人按顺时针方向围坐一圈,每人持有 一个密码(正整数),开始任选一个正整数作为报数上限值M, 从第1个人按顺时针方向自

zhuimengzh的专栏 3290

循环单链表解决约瑟夫问题

1.约瑟夫问题 1.1 基本目的 使用循环单链表实现有密码的约瑟夫问题,即每次出局的人会更改计数上限,每个人身上都会附带一个密码。输入每个人的信息,输出出局的顺序。 1.2 核心代码 1.2.1 实现方法 public void test(int pass,Node node){ if(length==0) return; for(int ...

qq_16215221的博客 1030

用单循环链表实现约瑟夫问题。

约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。 #include <stdio.h> #include <stdlib.h> #include "declear.h" typedef struct Node { ElemTy...

weixin_30535913的博客 370

循环链表与约瑟夫问题

循环链表经常与约瑟夫问题涉及在一起,在解决约瑟夫问题之前,如果了解了循环链表(这里当然是指单向的了,不要想复杂了),那么约瑟夫问题就比较好解决了。 1,循环链表的建立,打印。 这里为了简单,只是开辟了5个空间,然后将其打印。 #include #include typedef struct Link { int k; struct Link *next; }Li

菜鸟天堂的专栏 1143

循环队列解决约瑟夫问题

有n个人围成一圈,从第1个人开始,1,2,…,m报数,报至m出局,余下的人继续从1,2,…,m报数,重复之前的流程,要求:求出被淘汰编号的序列,及最后剩下的一人是 原来的第几号?(要求:用循环队列解决该问题。) #ifndef STATUS_H #define STATUS_H #define TRUE 1 #define FALSE 0 #define OK 1 ...

weixin_30536513的博客 1099
上一篇: 如何创建单链表以及循环链表
下一篇: 魔术师发牌问题
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值