华为OD机试 - 约瑟夫问题(Java)

题目描述

输入一个由随机数组成的数列(数列中每个数均是大于 0 的整数,长度已知),和初始计数值 m。

从数列首位置开始计数,计数到 m 后,将数列该位置数值替换计数值 m,

并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。

如果计数到达数列尾段,则返回数列首位置继续计数。

请编程实现上述计数过程,同时输出数值出列的顺序。

比如:输入的随机数列为:3,1,2,4,初始计数值 m=7,从数列首位置开始计数(数值 3 所在位置)

第一轮计数出列数字为 2,计数值更新 m=2,出列后数列为 3,1,4,从数值 4 所在位置从新开始计数

第二轮计数出列数字为 3,计数值更新 m=3,出列后数列为 1,4,从数值 1 所在位置开始计数

第三轮计数出列数字为 1,计数值更新 m=1,出列后数列为 4,从数值 4 所在位置开始计数

最后一轮计数出列数字为 4,计数过程完成。输出数值出列顺序为:2,3,1,4。

要求实现函数:

void array_iterate(int len, int input_array[], int m, int output_array[])

输入描述

 int len:输入数列的长度; int intput_array[]:输入的初始数列 int m:初始计数值

输出描述

 int output_array[]:输出的数值出列顺序

【华为OD机试真题 Java语言】193、约瑟夫问题 | 机试真题+思路参考+代码分析 输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知) ,和初始计数值m >  从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止 >  如果计数到达数列尾段,则返回数列首位置继续计数 >  请编程实现上述计数过程,同时输出数值出列的顺序 >  比如:输入的随机数列为: 3,1,2,4, 初始计数值m=7,从数列首位置开始计数(数值3所在位置) >  第一 阅读详情

相关推荐

华为OD机试:约瑟夫问题解析及C++、Java、JavaScript和Python多语言实现详解

约瑟夫问题是一个古老且经典的数学问题,最早起源于公元1世纪的犹太历史学家约瑟夫斯的故事。在原始版本中,一群士兵为了避免被俘,决定以一种自杀的方式来减少人数,直到只剩下最后一个幸存者。士兵们围成一个圆圈,从某个位置开始按顺时针顺序数到第m个士兵并将其移除,接着从下一个士兵重新开始数,直到所有士兵都被移除。问题的核心是:给定初始士兵数量和计数规则,找到最后一个幸存者的位置。

m0_57781768的博客 409

【华为OD机试真题】193、约瑟夫问题 | 机试真题+思路参考+代码分析(C语言、C++、Java、Py、JS)

>输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知) ,和初始计数值m >  从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止 >  如果计数到达数列尾段,则返回数列首位置继续计数 >  请编程实现上述计数过程,同时输出数值出列的顺序 >  比如:输入的随机数列为: 3,1,2,4, 初始计数值m=7,从数列首位置开始计数(数值3所在位置) >  第

KJ.JK 1075

华为OD机试 - 报数问题 - 约瑟夫环(Java 2025 C卷 100分)

在这个问题中,n 个人站成一圈,每个人按照顺序报数,报到 3 的人退出圈子,直到只剩下一个人为止。要解决这个问题,我们可以使用数组或链表模拟这个过程,也可以使用数学方法直接找到最后剩下的人的位置。每次移除一个人,最多需要花费 O(n) 的时间,因为在最坏情况下需要遍历整个列表(比如在使用数组或链表时需要寻找并移除第 k 个元素)。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。报数序号为1的人最终报3,因此序号1的人退出圈子,最后剩下序号为2的那位。

学Java,找哪吒 1188

【免费题库】华为OD机试C卷 - 约瑟夫问题(Java 代码+解析)

题目描述 输入一个由随机数组成的数列(数列中每个数均是大于 0 的整数,长度已知),和初始计数值 m。 从数列首位置开始计数,计数到 m 后,将数列该位置数值替换计数值 m, 并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。 如果计数到达数列尾段,则返回数列首位置继续计数。 请编程实现上述计数过程,同时输出数值出列的顺序。 比如:输入的随机数列为:3,1,2,4,初始计数值 m=7,从数列首位置开始计数(数值 3 所在位置) 第一轮计数出列数字为 2,计数值更新 m

m0_66793065的博客 2162

【华为OD机试真题 2025C卷】193、约瑟夫问题 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷】193、约瑟夫问题 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华为o

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 280

【华为OD机试真题】64、报数游戏 | 机试真题+思路参考+代码解析(C++、Java、Py、JS)

题目描述 >100个人围成一 圈,每个人有一个编码,编号从1开始到100; 他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。   请问最后剩余的人在原先的编号为多少?

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1594

华为OD机试 -约瑟夫问题(C++ Java JavaScript Python)

输入一个由随机数组成的数列(数列中每个数均是大于 0 的整数,长度已知),和初始计数值 m。 从数列首位置开始计数,计数到 m 后,将数列该位置数值替换计数值 m, 并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。 如果计数到达数列尾段,则返回数列首位置继续计数。

算法大师! 2166

华为OD机试-真题B卷(Java)-约瑟夫问题

输入一个由随机数组成的数列(数列中每个数均是大于 0 的整数,长度已知),和初始计数值 m。从数列首位置开始计数,计数到 m 后,将数列该位置数值替换计数值 m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。如果计数到达数列尾段,则返回数列首位置继续计数。请编程实现上述计数过程,同时输出数值出列的顺序。比如:输入的随机数列为:3,1,2,4,初始计数值 m=7,从数列首位置开始计数(数值 3 所在位置)

u014481728的博客 2079

华为OD机试C卷-- 约瑟夫问题(Java & JS & Python & C)

输入一个由随机数组成的数列(数列中每个数均是大于 0 的整数,长度已知),和初始计数值 m。 从数列首位置开始计数,计数到 m 后,将数列该位置数值替换计数值 m, 并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。 如果计数到达数列尾段,则返回数列首位置继续计数。 请编程实现上述计数过程,同时输出数值出列的顺序。 **比如:**输入的随机数列为:3,1,2,4,初始计数值 m=7,从数列首位置开始计数(数值 3 所在位置) 第一轮计数出列数字为 2,计数值更新 m=2,出列后

wbajsjhhhhh的博客 2087

【华为OD机试真题E卷】554、报数游戏 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)

【华为OD机试真题E卷】554、报数游戏 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备战华为od,华为od算

KJ.JK 2507

【华为OD机试】 约瑟夫问题(C++/Java/Python)

【华为OD机试】 约瑟夫问题(C++/Java/Python)

dvlinker的技术专栏 217

华为OD机试——报数问题(C++、Java、Python、JavaScript 深度解析)

该题是经典的约瑟夫环问题的简单版本,采用模拟法非常直观。通过逐个模拟报数并淘汰,可以逐步缩小参与者的范围,最终找到唯一的胜利者。各个语言的实现方式相似,只是在处理循环和数组操作上略有区别。

m0_57781768的博客 116

【2024年华为OD机试】(E卷,100分) - 报数游戏 (JavaScript&Java & Python&C/C++)

本题是约瑟夫环问题的变种,通过模拟报数和淘汰的过程可以解决。需要注意输入参数M的合法性,以及输出格式的要求。通过模拟过程,可以找到最后剩下的人的编号,并按从小到大的顺序输出。该代码通过模拟约瑟夫环问题的淘汰过程,找到最后剩下的人的编号。使用数组切片和递归实现淘汰逻辑。对结果进行排序,并按格式输出。代码逻辑清晰,能够正确处理输入并输出结果。修正后的代码解决了原代码中的逻辑错误和递归终止问题。通过模拟淘汰过程,能够正确找到最后剩下的人的编号。

嵌入式技术开发 839

【华为OD机试】真题E卷-报数游戏(JAVA)

100个人围成一圈,每个人有一个编码,编号从1开始到100。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少?

u014481728的博客 784

S7-1200PLC 与温控仪表Modbus RTU通信

硬件:cpu 1214C 目的:通过Modbus RTU协议,实现对温控仪表的控制 软件:Portal V14SP1

weixin_43922025的博客 3万+

立创开源便携式多生理参数监护仪:基于STM32H743与ADS1292R的心电血氧体温监测系统设计

本文详细解析了基于STM32H743与ADS1292R的便携式多生理参数监护仪开源设计。项目集成了心电、血氧和体温监测功能,采用模块化硬件架构,并重点介绍了利用FIR滤波和Pan-Tompkins算法进行心电信号处理的核心技术。文章提供了完整的复刻指南与避坑要点,是学习医疗电子设备设计的优秀实践案例。

weixin_30600615的博客 327

MTK手机传感器驱动开发避坑指南:从SCP代码大小限制到Overlay加载流程详解

本文详细解析了MTK平台传感器驱动开发中的常见问题,包括SCP代码大小限制、Overlay加载流程及客制化传感器集成。通过实战案例和优化策略,帮助开发者高效解决MTK传感器驱动开发中的技术难题,提升开发效率。

weixin_42522374的博客 401

AI与Agent赋能下的软件测试变革:面向未来测试工程师的工作方法论

AI Agent 软件测试 测试 software testing test

测试技师的自我修养 1236

小程序真机调试蓝牙可以使用,线上发布版本蓝牙无法使用

小程序提示请打开蓝牙,微信小程序蓝牙无法连接,小程序真机调试蓝牙可以使用,线上版本蓝牙无法使用,测试环境蓝牙正常,开发环境蓝牙正常,发布后蓝牙无法使用

renkai721的专栏 826

【STM32 CubeMX】I2C中断方式与DMA方式

在STM32 CubeMX环境中,I2C(Inter-Integrated Circuit)通信协议的实现可以采用中断方式或DMA(Direct Memory Access)方式。中断方式通过触发中断来处理数据传输,而DMA方式则利用直接内存访问技术来实现数据传输,减轻了CPU的负担。在选择I2C通信方式时,开发者需要根据具体的应用需求和性能要求来选择合适的方式。STM32 CubeMX提供了图形化配置工具,使得配置I2C通信方式变得更加便捷。

m0_62599305的博客 7747

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2399

OCS2 入门教程(一)

OCS2 是专为切换系统优化控制(ptimalontrol forwitchedystems,OCS2)定制的 C++ 工具箱。该工具箱提供以下算法的高效实现:SLQ:连续时间域约束 DDPiLQR:离散时域约束 DDPSQP:基于 HPIPM 的多重打靶算法IPM: 基于非线性内点法的多重搜索算法SLP:基于 PIPG 的顺序线性规划算法OCS2 通过增强拉格朗日法(Augmented Lagrangian)或松弛障碍法(relaxed barrier methods)处理一般路径约束。

机器人控制与仿真应用 7837

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 华为OD机试 - 构成正方形的数量(Java)
下一篇: 华为OD机试 - 靠谱的车(Java)
清水乐园
博客等级 码龄13年 175粉丝 398原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水乐园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值