华为OD机试真题-水仙花数

news2024/11/7 0:43:55

题目描述

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

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

输入描述

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

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

输出描述

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

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

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

示例1
输入

3
0

输出

153

说明

153是第一个水仙花数.

示例2

输入

9
1

输出

-1

说明

9超出范围

题解

水仙花数较少
直接修改为常量

源码 Java

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        // 预先存储的水仙花数表
        Map<Integer, int[]> table = new HashMap<>();
        table.put(3, new int[]{153, 370, 371, 407});
        table.put(4, new int[]{1634, 8208, 9474});
        table.put(5, new int[]{54748, 92727, 93084});
        table.put(6, new int[]{548834});
        table.put(7, new int[]{1741725, 4210818, 9800817, 9926315});
 
        // 创建扫描器获取用户输入
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
 
        // 检查 n 是否在 3 到 7 之间,或者 m 是否为负数
        if (n < 3 || n > 7 || m < 0) {
            System.out.println(-1);  // 非法输入
        } else if (m >= table.get(n).length) {
            // 如果 m 超出该位数水仙花数的数量,输出最后一个水仙花数乘以 m
            System.out.println((long)table.get(n)[table.get(n).length - 1] * m);
        } else {
            // 否则,输出第 m 个水仙花数
            System.out.println(table.get(n)[m]);
        }
 
        // 关闭扫描器
        scanner.close();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

openGauss数据库-头歌实验1-5 修改数据库

一、查看表结构与修改表名 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;修改表名&#xff0c;并能顺利查询到修改后表的结构。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.如何查看表的结构&#xff1b; 2.如…

linux 磁盘配额 quota

增加一个facl的的知识点&#xff1a; linux中默认的文件系统支持facl&#xff0c;如果是新挂载的分区&#xff0c;则不支持facl应用。需要在挂载文件系统时使用-o acl选项来启用facl支持。如下图显示 在/etc/fstab添加defaults,acl 1.启用磁盘配额功能&#xff1a;修改/etc/f…

进程和线程概念

进程 进程是系统进程资源分配和调度的一个独立单位。 进程的状态与转换 就绪 -> 阻塞 -> 执行 另外还有一个挂起操作&#xff0c;可将进程转入静止状态&#xff0c;知道激活操作&#xff0c;程序将恢复原有状态。 线程 线程更加轻量&#xff0c;作为调度和分派的基本…

三周精通FastAPI:27 使用使用SQLModel操作SQL (关系型) 数据库

官网文档&#xff1a;https://fastapi.tiangolo.com/zh/tutorial/sql-databases/ SQL (关系型) 数据库 FastAPI不需要你使用SQL(关系型)数据库。 但是您可以使用任何您想要的关系型数据库。 这里我们将看到一个使用SQLModel的示例。 SQLModel是在SQLAlchemy和Pydantic的基础…

Java 并发编程学习笔记

参考资料&#xff1a; JAVA并发专题 - 终有救赎的专栏 - 掘金 Java并发编程学习路线&#xff08;建议收藏&#xfffd;&#xfffd;&#xff09; | Java程序员进阶之路x沉默王二 面试题目&#xff1a; JUC第一讲&#xff1a;Java并发知识体系详解 面试题汇总(P6熟练 P7精通…

Docker篇(基础命令)

目录 一、启动与停止 二、镜像相关的命令 1. 查看镜像 2. 搜索镜像 3. 拉取镜像 4. 删除镜像 三、容器创建与启动容器 1. 查看容器 2. 创建容器 交互式方式创建容器 守护式方式创建容器 3. 容器启动与停止 四、容器操作命令 1. 文件拷贝 2. 目录&#xff08;文件…

qt QColorDialog详解

1、概述 QColorDialog是Qt框架中的一个对话框类&#xff0c;专门用于让用户选择颜色。它提供了一个标准的颜色选择界面&#xff0c;其中包括基本的颜色选择器&#xff08;如调色板和颜色轮&#xff09;、自定义颜色输入区域以及预定义颜色列表。QColorDialog支持RGB、HSV和十六…

算法练习:904. 水果成篮

题目链接&#xff1a;904. 水果成篮。 题目意思就是可以选取两个种类的水果不能超过两个种类&#xff0c;该种类个数没有限制&#xff0c; 但是一旦超过两个种类的水果就要停止计数。 示例中数组编号就是就是种类&#xff0c;就是不能出现三个不同编号的数。 1.暴力解法&…

JAVA WEB — HTML CSS 入门学习

本文为JAVAWEB 关于HTML 的基础学习 一 概述 HTML 超文本标记语言 超文本 超越文本的限制 比普通文本更强大 除了文字信息 还可以存储图片 音频 视频等标记语言 由标签构成的语言HTML标签都是预定义的 HTML直接在浏览器中运行 在浏览器解析 CSS 是一种用来表现HTML或XML等文…

深度学习:卷积神经网络中的im2col

im2col 是一种在卷积神经网络&#xff08;CNN&#xff09;中常用的技术&#xff0c;用于将输入图像数据转换为适合卷积操作的矩阵形式。通过这种转换&#xff0c;卷积操作可以被高效地实现为矩阵乘法&#xff0c;从而加速计算。 在传统的卷积操作中&#xff0c;卷积核&#xff…

【论文阅读】Associative Alignment for Few-shot Image Classification

用于小样本图像分类的关联对齐 引用&#xff1a;Afrasiyabi A, Lalonde J F, Gagn C. Associative alignment for few-shot image classification[C]//Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK, August 23–28, 2020, Proceedings, Part V 16. Spri…

HCIP-HarmonyOS Application Developer V1.0 笔记(五)

弹窗功能 prompt模块来调用系统弹窗API进行弹窗制作。 当前支持3种弹窗API&#xff0c;分别为&#xff1a; 文本弹窗&#xff0c;prompt.showToast&#xff1b;对话框&#xff0c;prompt.showDialog&#xff1b;操作菜单&#xff0c;prompt.showActionMenu。 要使用弹窗功能&…

【办公类-04-04】华为助手导出照片视频分类(根据图片、视频的文件名日期导入“年-月-日”文件夹中,并转移到“年-月”文件中整理、转移到“年”文件夹中整理)

背景需求 最近带班&#xff0c;没有时间整理照片&#xff0c;偶尔导一次&#xff0c;几个月的照片。发现用电脑版“华为手机助手“中的WLAN连接”与华为手机的“华为手机助手”连接&#xff0c;速度更快、更稳定&#xff0c;不会出现数据线连接时碰碰就断网的问题 1、先打开电…

人工智能技术:未来生活的“魔法师”

想象一下&#xff0c;未来的某一天&#xff0c;你醒来时&#xff0c;智能助手已经为你准备好了早餐&#xff0c;你的智能家居系统根据你的心情和日程安排调整了室内的光线和音乐&#xff0c;而你的自动驾驶汽车已经在门口等你。这不是科幻小说&#xff0c;这是人工智能技术为我…

Golang | Leetcode Golang题解之第538题把二叉搜索树转换为累加树

题目&#xff1a; 题解&#xff1a; func getSuccessor(node *TreeNode) *TreeNode {succ : node.Rightfor succ.Left ! nil && succ.Left ! node {succ succ.Left}return succ }func convertBST(root *TreeNode) *TreeNode {sum : 0node : rootfor node ! nil {if n…

信号带宽和上升沿的关系:【图文讲解】

目录 1&#xff1a;什么是信号带宽 2&#xff1a;带宽计算公式 3&#xff1a;实际应用 这里讨论的信号&#xff0c;是指数字信号&#xff0c;默认为方波信号。 方波是一种非正弦曲线的波形&#xff0c;具有明确的“高”和“低”两个电平值&#xff0c;且占空比&#xff08;…

大数据新视界 -- 大数据大厂之 Impala 性能优化:从数据压缩到分析加速(下)(8/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

SpringAI QuickStart

Spring AI 官方文档&#xff1a;Spring AI Spring AI 是一个面向 AI 工程的应用框架&#xff0c;其目标是将 Spring 生态系统的可移植性和模块化设计等设计原则应用到AI 领域&#xff0c;并推动将 POJO 作为应用的构建块应用于 AI 领域。 其特点是跨 AI 供应商支持的便携式 A…

Matplotlib | 条形图中的每个条形(patch)设置标签数据的方法

方法一 不使用子图对象如何给形图中的每个条形设置数据 plt.figure(figsize(8, 4)) sns.countplot(xWorkout_Frequency (days/week), datadf)plt.title(会员每周锻炼频率分布) plt.xlabel(锻炼频率 (每周次数)) plt.ylabel(人数)# 获取当前活动的轴对象 ax plt.gca()# 循环遍…