首页 > 其他分享 >华为OD E卷(100分)45-喊7的次数重排

华为OD E卷(100分)45-喊7的次数重排

时间:2025-01-02 15:26:44浏览次数:3  
标签:45 int res sum OD ++ 次数 100 data

前言

        工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力,无聊之余打算用一些大厂的编程题练练手。希望通过这些分享能够帮到一些人,也希望能和看到此文的大神们沟通交流,提升自己,更希望在此期间能够找到一份理想的工作。

题目描述

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

  1. 编号为 1 的人从 1 开始喊数。
  2. 下一个人喊的数字为上一个人的数字加 1。
  3. 当将要喊出来的数字是 7 的倍数或者数字本身含有 7 时,不能直接喊出这个数字,而是要喊"过"。
  4. 假定所有人都没有失误地在正确的时机喊了"过"。

        现在,给定一个长度为 N 的数组,存储了打乱顺序的每个人喊"过"的次数。你的任务是将它还原成正确的顺序,即数组的第 i 个元素应存储编号 i 的人喊"过"的次数。

输入

输入为一行,包含空格分隔的喊"过"的次数。数字的个数即为 N。

输出

       输出为一行,包含顺序正确的喊"过"的次数,用空格分隔。

示例 

示例1

输入
0 1 0
输出

1 0 0
说明:

一共只有一次喊"过",那只会发生在需要喊 7 时。按顺序,编号为 1 的人会遇到 7,故输出 1 0 0。注意:结束时的 K 不一定是 7,也可以是 8、9 等,喊过的次数都是 1 0 0。
 

示例2

输入
0 0 0 2 1
输出

0 2 0 1 0

说明

一共有三次喊"过",发生在 7、14、17。按顺序,编号为 2 的人会遇到 7 和 17,编号为 4 的人会遇到 14,故输出 0 2 0 1 0。

解题思路

       重演数7的过程,直到喊过的总次数达到输入的次数和为止。过程中记录每个人喊过的次数。

题解

Java实现

package huawei.e100;

import java.util.Arrays;
import java.util.Scanner;

/**
* @author arnold
* @date 2025年1月2日
* 喊7的次数重排

*/
public class T45 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			String[] tmp = sc.nextLine().split(" ");
			int[] data = new int[tmp.length];
			int sum = 0;
			for (int i = 0; i < data.length; i++) {
				data[i] = Integer.parseInt(tmp[i]);
				sum += data[i];
			}
			int[] res = run(data, sum);
			for (int i = 0; i < res.length; i++) {
				System.out.print(res[i] +" ");
			}
			System.out.println();
		}

	}
	
	static int[] run(int[] data, int times) {
		int[] res = new int[data.length];
		Arrays.fill(res, 0);
		int sum = 0;
		int num = 0;
		while (sum < times) {
			for (int i = 0; i < data.length; i++) {
				num++;
				if(num %7 == 0 || (num+"").indexOf("7") > -1) {
					res[i] += 1;
					sum ++;
				}
			}
		}
		return res;
	}

}

标签:45,int,res,sum,OD,++,次数,100,data
From: https://blog.csdn.net/arnold66/article/details/144887691

相关文章

  • 华为OD E卷(100分)44-单次接龙
     前言    工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老,没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力,无聊之余打算用一些大厂的编程题练......
  • Google Chrome cursor auto edit mode bug All In One
    GoogleChromecursorautotexteditmodebugAllInOneGoogleChrome光标自动进入文本编辑模式bugtextcursorbug问题分析:可能是清洁键盘的时候,不小心按到了F7键,导致自动开启了插入符号浏览模式solutionsPresstheF7keyofkeybaord,TurnOn/TurnOff......
  • 理解 QOverload<T>::of(&ClassName::MethodName);
    这段代码的语法是Qt信号与槽机制的现代实现方式之一,结合了C++11的lambda和模板特性。这里的QOverload是一个Qt提供的工具,用于解决Qt的信号和槽机制在多重重载函数时可能发生的歧义问题。以下是分解此代码的详解:1.connect的语法connect(sender,signal,re......
  • 2025/1/2 【双指针法】LeetCode27.移除元素 【√】 ❗未完结❗
    27.移除元素-力扣(LeetCode)代码随想录数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。Myanswer:快慢指针法classSolution:defremoveElement(self,nums:List[int],val:int)->int:n=len(nums)j=0forii......
  • 关于此题E - Maximize XOR(Atcoder ABC 386)搜索技巧的一些总结
    传送门题目要求n个数中选k个数异或起来最大,我们想到字典树中最大异或和这一经典问题,但是很明显字典树只能解决任选两个数的最大异或,而此题是任选k个,那我们走投无路只能考虑爆搜。首先可以很容易写出一个暴力的搜索:voiddfs1(longlongpos,longlongsum,longlongkk){i......
  • linux安装nodejs
    https://nodejs.org/en/下载nodejs后解压到一个目录添加环境变量#NodejsexportNODE_HOME=/opt/SoftWare/node-v10.16.0-linux-x64exportPATH=$PATH:$NODE_HOME/bin 使用国内镜像npminstall-gcnpm--registry=https://registry.npm.taobao.org 安装vue脚手架cnpm......
  • 论文阅读:Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
    Transformer可以接收一整段序列,然后使用self-attention机制来学习它们之间的依赖关系,但其在语言建模时受到固定长度上下文的限制(固定长度的输入、绝对位置编码的限制、注意力机制的计算复杂度)。Transformer-XL以此为基础,引入一个片段级递归机制和一种新的位置编码方案,从而可以在......
  • 项目45:简易同义词替换器【源代码】 --- 《跟着小王学Python·新手》
    项目45:简易同义词替换器—《跟着小王学Python·新手》《跟着小王学Python》是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Python的核心概念。通过开发游戏、构建Web应用、编写网络......
  • 使用JSONObject.getString()时报错:Cannot resolve method ‘getString‘ in ‘JSONObjec
    目录使用JSONObject.getString()时报错:Cannotresolvemethod'getString'in'JSONObject',JSONObject三种库的用法一、背景描述二、问题解决1、使用org.json.JSONObject读取属性2、使用org.json.simple.JSONObject读取属性3、使用cn.hutool.json.JSONObject读取属性三、......
  • Linux安装nodejs npm
    1、检查whereisnodejswhereisnpm2、下载wget-chttps://npm.taobao.org/mirrors/node/v12.12.0/node-v12.12.0-linux-x64.tar.xztar-xvfnode-v12.12.0-linux-x64.tar.xzmvnode-v12.12.0-linux-x64nodejsmv/root/nodejs//usr/sbin/3、配置软连接ln-s/usr/sbin/......