华为OD机试 - 喊7的次数重排(Java 2024 E卷 200分)

该博客介绍了华为在线开发者(OD)机试的一道真题,涉及Java编程。题目要求根据N个人在喊7游戏中的‘过’次数,还原正确的顺序。博客提供了详细的解题思路,包括输入输出描述、算法实现和效果展示。解题过程中,通过遍历和判断数字是否为7的倍数或包含7,来统计每个人喊'过'的次数,并重新排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目描述

喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。

编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1,但是当将要喊出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接喊出来,而是要喊”过”。

假定玩这个游戏的N个人都没有失误地在正确的时机喊了”过”,当喊到数字K时,可以统计每个人喊”过”的次数。

现给定一个长度为N的数组,存储了打乱顺序的每个人喊”过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人喊”过”的次数。

二、输入描述

输入为一行,为空格分隔的喊”过”的次数,注意K并不提供,K不超过200,而数字的个数即为N。

输入0 2 1 0 0

三、输出描述

输出为一行,为顺序正确的喊”过”的次数,也由空格分隔。

输出0 2 0 1 0

一共喊了3次过,也就是7,14,17。

按顺序来说第二个人喊了7,第四个人喊了14,第二个人又喊了17。

四、测试用例

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哪 吒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值