华为OD机试 - 水仙花数 Ⅰ(Java)

题目描述

所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。

例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。

输入描述

第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。

第二行输入一个正整数m,表示需要返回第m个水仙花数。

输出描述

返回长度是n的第m个水仙花数。个数从0开始编号。

若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积。

若输入不合法,返回-1。

用例

输入3
0
输出153
说明153是第一个水仙花数
输入9
1
输出-1
说明9超出范围
 Java
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
 
public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
 
    int n = sc.nextInt();
    int m = sc.nextInt();
 
    System.out.println(getResult(n, m));
  }
 
  public static int getResult(int n, int m) {
    if (n < 3 || n > 7) return -1;
 
    HashMap<Integer, Integer> powN = new HashMap<>();
    for (int i = 0; i <= 9; i++) powN.put(i, (int) Math.pow(i, n));
 
    int min = (int) Math.pow(10, n - 1);
    int max = (int) Math.pow(10, n);
 
    int ans = -1;
    int count = -1;
 
    for (int i = min; i < max; i++) {
      Integer sum =
          Arrays.stream((i + "").split(""))
              .map(e -> powN.get(Integer.parseInt(e)))
              .reduce(Integer::sum)
              .orElse(0);
 
      if (sum == i) {
        ans = i;
        count++;
        if (count == m) return ans;
      }
    }
 
    return ans;
  }
}

华为OD机试 - 水仙花数 Ⅰ(Java) 但是本题的水仙花数最长可以有7位,也就是百万级别的,虽然下面算法差不多是O(n)的,但是估计也Hold不住。例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积。第二行输入一个正整数m,表示需要返回第m个水仙花数。返回长度是n的第m个水仙花数。若输入不合法,返回-1。 阅读详情

相关推荐

华为OD机试 -水仙花数 Ⅰ(Java & Python& JS & C++ & C )

华为OD机试 -水仙花数 Ⅰ(Java & Python& JS & C++ & C )第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。 第二行输入一个正整数m,表示需要返回第m个水仙花数。

算法大师! 6521

华为OD 机试 2025 B卷 - 水仙花数Ⅰ(C++ & Python & JAVA & JS & GO)

华为OD机试 2025 B卷 水仙花数Ⅰ 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 688

华为OD机试E卷 - 水仙花数 Ⅰ(Java & Python& JS & C++ & C )

所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。

算法大师! 1577

【华为OD机试】水仙花数Ⅰ(C++ Python Java)2023 B卷

所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。 例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。

dijkstra2023的博客 232

2024华为OD机试真题-水仙花数Ⅰ(C++/Java/Python)-E卷B卷-100分

所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。 例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。

goldarmour的博客 1813

华为OD机试 2025A卷 - 水仙花数Ⅰ(100分)

华为OD2025A卷真题 水仙花数Ⅰ 提供Java、C++、Python、Go、JavaScript源码实现

qq_45776114的博客 375

2026年华为od机试真题题库

OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)

面试高手的博客 19万+

用Java解决华为OD机试考题,目标300+真题,清单奉上,祝你上岸

直接在本页使用 Ctrl+F,输入题目名称就可以进行检索。本目录为华为od机试JS题解目录,其它版本清单如下。⭐️华为OD机考 Python。⭐️华为OD机考 Golang。⭐️ 华为OD机考真 C 语言。⭐️华为OD机考 JAVA。⭐️华为OD机考 C++⭐️华为OD机考 JS。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

2026华为OD机试(Python)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Python实现。

MISAYAONE的博客 29万+

华为OD机试题,用 Java 解【水仙花数】问题

我们可以在 main 方法中,使用 Scanner 类获取输入,并使用 Integer.parseInt 方法将字符串转换成 int 类型,判断输入的 n 是否超过 7 或小于 3,若是,就直接输出-1,否则使用 for 循环和乘法操作计算 begin 和 end,然后使用 check 方法检查是否满足条件,若满足条件,则 count+1,并判断 count 是否等于 m,若是,就打印 j,若不是,就打印-1,最后捕获异常并打印 false。若 m 大于水仙花数的个数,返回最后一个水仙花数和 m 的乘积。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 5162

华为OD机试题,用 Java 解【水仙花数 2】问题

参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 5679

【华为OD机试真题】36、水仙花数 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。 例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3

KJ.JK 1553

【华为OD机试真题】244、水仙花数Ⅱ | 机试真题+思路参考+代码分析(C++、Java、Py、C语言、JS)

🎃题目描述 >给定非空字符串s,将该字符串分割成一些子串,使每个子串的ASCII码值的和均为水仙花数 1、若分割不成功,则返回0; 2、若分割成功且分割结果不唯一,则返回-1; 3、若分割成功且分割结果唯一,则返回分割后子串的数目

KJ.JK 1万+

华为OD机试 新系统 双机位C卷 真题题库目录|机考题库 + 算法考点详解

本文整理华为OD机试(机考) 新系统真题题库,提供高频考点精析与详细题目内容,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解 和 在线OJ做题练习。华为OD机试新系统真题题库。

qq_45776114的博客 10万+

华为OD机试题 - 水仙花数(JavaScript)| 含思路

参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。大于水仙花数的个数返回最后一个水仙花数和。👍 阅读完毕,可以点点小手赞一下。🌻 发现错误,直接评论区中指正吧。表示 N 位的正整数 N 在。所谓的水仙花数是指一个。位的正整数其各位数字的。次方的和等于该数本身,第二行输入一个正整数。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 5897

机试真题目录

**2024年8月份,华为官方已经将华为OD机考:OD统一考试(D卷)切换到 OD统一考试(E卷)** 。从参加过华为OD笔试的朋友来看,**E卷的新题非常少,大部分是A,B,C,D卷的合并题库。** 另一方面据考生反应需要双机位,也就是在牛客小程序中一直点确认,最后一步需要调试并开启您的摄像头。

m0_73659489的博客 5万+

cst使用局部网格加密,手动加密,special设置等方法合理网格布局加速仿真速度

在CST中,计算复杂模型或者阵列的时候往往需要耗费大量仿真时间,除了使用更高性能的电脑或工作站进行仿真,合理对CST的仿真网格进行适当设置也是必不可少的一步。CST中网格设置影响模拟的精度和速度,因此花时间理解网格过程是很重要的。

OVEN_b612的博客 1万+

告别纯文本RAG:用Dify 1.11.0多模态知识库,5步搭建一个能“读图”的智能客服助手

本文详细介绍了如何利用Dify 1.11.0多模态知识库构建智能视觉客服助手,通过5个步骤实现图片内容理解与专业回复。从准备多模态素材到配置知识库节点,再到设计工作流逻辑和性能优化,帮助开发者快速搭建高效客服系统,显著提升用户体验和问题解决效率。

weixin_30832143的博客 452

车载测试面试题总结

首先确认是什么问题,如果是测试软件的问题就先确定自己的测试方法有没有问题,如果没有问题,那就是测试软件的问题,这时候就需要提bug 进行跟踪,(比如BCM测试的时候,先明确测试的输入,对输入)进行需求分析,然后设计测试用例,进行用例评审,评审完执行测试用例形成最终的版本,台架分为:hil(黑尔)台架,单个控制器的台架、整车台架、车身台架、动力系统台架等,主要验证其功能,或者实车无法满足的测试环境。这个人不可能一直,点击几千次或者多少次几个小时连续点击,人不可能一直在点。因为要模拟一下这个稳定性,

woaxiaoqing的博客 7817

Cadence画PCB的傻瓜式教程

1.原理图1)建立元件库2)建立原理图3)在原理图中画好电路图4)利用MENTOR-GRAPHICS-IPC-7351-LP-VIEWER查看元件的封装信息,用pad designer画焊盘,用pcb editor画元件的封装(对照LP_VIEWER),(也可以使用package wizard)5)在原理图中为元件添加封装信息(键入)6)Drc检查7)生成网表2.Pcb1)设置...

tianpu2320959696的博客 1万+

【WRF-Urban】Registry.EM_COMMON文件概述及urban有关变量

Registry.EM_COMMON文件概述及urban有关变量

WW、forever的博客 1594

中文核心:swin transformer 农作物病虫害识别 完整代码数据

中文核心:swin transformer 农作物病虫害识别

940

Android15车载系统开机冷启动流程源码解析

本文主要介绍Android15车机系统开机冷启动的流程,暂不包含bootloader,仅从kernel开始直至Launcher首页展示。

jidapenglin28的专栏 253

【学习系列】SAP RAP 7:行为定义-Draft

本文介绍了RAP框架中的草稿表(Draft)功能及其应用。草稿表允许用户临时保存数据,在激活前不影响业务逻辑,支持保存继续、暂存和设备切换功能。草稿分为独占草稿(仅限同一用户编辑)和协作草稿(允许多用户协同编辑)。启用草稿需在行为定义和投影中包含标准action,并创建包含TotalETag等管理字段的草稿表。TotalETag确保草稿转换时活动数据未被修改,而ETagmaster则防止并发修改。文章通过OData调用示例详细说明了ETag验证过程,强调草稿功能由RAP框架自动处理,开发者只需关注定义和配置

DeveloperMrMeng的博客 443

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 华为OD机试 - ABR 车路协同场景(Java)
下一篇: 华为OD机试 - 路灯照明问题(Java)
清水乐园
博客等级 码龄13年 175粉丝 398原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值