当前位置: 首页 > news >正文

华为OD机试 - 幸运数字(Java 2024 E卷 100分)

在这里插入图片描述

华为OD机试 2024E卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》。

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

有位客人来自异国,在该国使用m进制计数。

该客人有个幸运数字n(n<m),每次购物时,其总是喜欢计算本次支付的花费(折算为异国的价格后)中存在多少幸运数字。

问: 当其购买一个在我国价值k的产品时,其中包含多少幸运数字?

二、输入描述

第一行输入为 k,n,m。其中:

k 表示 该客人购买的物品价值 (以十进制计算的价格)

n 表示该客人的幸运数字

m 表示 该客人所在国度的采用的进制

三、输出描述

输出幸运数字的个数,行未无空格。

1、输入

10 2 4

2、输出

2

3、说明

10用4进制表示时为22,同时,异国客人的幸运数字是2,故而此处输出为2,表示有2个幸运数字。

四、解题思路

我们需要将十进制数 k 转换为 m 进制,然后统计其中等于幸运数字 n 的个数。具体步骤如下:

  1. 将十进制数 k 转换为 m 进制:
    • 使用除基取余法,直到 k 为0,将每次的余数记录下来。
    • 将记录的余数反向排列,即为 m 进制表示。
  2. 统计幸运数字的个数:
    • 遍历 m 进制表示的数字,统计其中等于 n 的数字个数。
  3. 输出结果:输出幸运数字的个数。

五、Java算法源码

public class Test01 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取输入的 k, n, mint k = scanner.nextInt();int n = scanner.nextInt();int m = scanner.nextInt();// 关闭Scannerscanner.close();// 将十进制数 k 转换为 m 进制String mBaseNumber = convertToBaseM(k, m);// 统计幸运数字 n 的个数int luckyNumberCount = countLuckyNumbers(mBaseNumber, n);// 输出结果System.out.println(luckyNumberCount);}// 将十进制数 k 转换为 m 进制表示private static String convertToBaseM(int k, int m) {StringBuilder mBaseNumber = new StringBuilder();while (k > 0) {int remainder = k % m;mBaseNumber.append(remainder);k /= m;}return mBaseNumber.reverse().toString();}// 统计 m 进制表示中幸运数字 n 的个数private static int countLuckyNumbers(String mBaseNumber, int n) {int count = 0;char luckyDigit = Character.forDigit(n, 10);for (char digit : mBaseNumber.toCharArray()) {if (digit == luckyDigit) {count++;}}return count;}
}

六、效果展示

1、输入

10 4 4

2、输出

0

3、说明

此时客人的幸运数字为4,但是由于该国最大为4进制,故而在该国的进制下不可能出现幸运数字,故而返回0

在这里插入图片描述


🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2024 E卷 200分)

🏆本文收录于,华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.mrgr.cn/news/70202.html

相关文章:

  • 初次体验Tauri和Sycamore(1)
  • Linux软件包管理与Vim编辑器使用指南
  • 【LeetCode】【算法】11. 盛最多水的容器
  • 本溪与深圳市新零售产业互联协会共商世界酒中国菜湾区农业发展
  • C# 实现对指定句柄的窗口进行键盘输入的实现
  • Elman 神经网络算法详解
  • 图神经网络实战(20)——时空图神经网络
  • ORB-SLAM2源码学习:Frame.cc: Frame::isInFrustum 判断地图点是否在当前帧的视野范围内
  • 【昱合昇天窗】电动采光排烟天窗功率
  • Python 列表:数据处理的强大工具
  • NX/UG 二次开发 获取注释信息
  • Redis 入门
  • go聊天系统项目-2 redis 验证用户id和密码
  • 0-1000 的数字里,恰好只有一个5的数的个数
  • 【AI技术】DH_Live部署方案
  • 量化交易系统开发-实时行情自动化交易-2.技术栈
  • 适合初学者和专家程序员的 AI 编码工具
  • 贯穿式学习MySQL
  • 歌曲去人声的轻松技巧,只需两步就能获取纯伴奏
  • 优化时钟网络之时钟偏移
  • [CKS] Audit Log Policy
  • 快速了解SpringBoot 统一功能处理
  • 集运行业破内卷:以差异化服务打造准时达品牌,重塑良性竞争生态
  • 双 11 数据可视化:Pyecharts 与 Matplotlib 绘制商品价格对比及动态饼图
  • 华大单片机跑历程IO口被写保护怎么解决
  • golang分布式缓存项目 Day3 HTTP服务端