29 水仙花数

题目描述
所谓水仙花数,是指一个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。

用例
输入    0    3    
输出    153    
说明    153是第一个水仙花数    
输入    9    1    
输出    -1    
说明    9超出范围

package com.company;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 long getResult(int n, int m) {// 若输入不合法,返回-1if (n < 3 || n > 7 || m < 0) return -1;// 提前计算好0~9的N次方, 避免后续进行重复计算HashMap<Character, Integer> powN = new HashMap<>();for (int i = 0; i <= 9; i++) {// 将整型0~9转化字符'0'~'9',即让i+'0'即可powN.put((char) (i + '0'), (int) Math.pow(i, n));}// 最小的N位数int min = (int) Math.pow(10, n - 1);// 最大的N位数int max = (int) Math.pow(10, n);// 记录当前水仙花数long ans = 0;// 记录当前水仙花数是第几个int idx = 0;for (int num = min; num < max; num++) {// 记录num各位数字的N次方之和int sum = 0;// 遍历num的每一位数字String str = num + "";for(int i=0; i<n; i++) {sum += powN.get(str.charAt(i));}// 判断num是否为水仙花数if (sum == num) {ans = num;// 如果num刚好是N位数的第m个水仙花数,则直接返回,否则继续查找if (idx++ == m) return ans;}}// 若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积return ans * m;}
}

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

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

相关文章

uniapp各种小程序分享 share - 主要流程 - 微信、抖音、快手、qq

参考 小程序环境 分享 | uni-app官网uni-app,uniCloud,serverless,分享,uni.share(OBJECT),分享到微信聊天界面示例代码,分享到微信朋友圈示例代码,uni.share 在App端各社交平台分享配置说明,uni.shareWithSystem(OBJECT),plus.share.sendWithhttps://uniapp.dcloud.net.cn/a…

MCS-51系列与AT89C5x系列单片机的介绍与AT系列的命名规则

MCS-51系列与AT89C5x系列单片机 主要涉及MCS-51系列与AT89C5x系列单片机的介绍与AT系列单片机的命名规则 文章目录 MCS-51系列与AT89C5x系列单片机一、 MCS-51系列单片机二、AT89C5x系列单片机2.1 AT89C5x/AT89S5x系列单片机的特点2.2 AT89系列单片机的型号说明2.2.1 前缀2.2.2…

数组区段的最大最小值

题干 本题要求实现一个函数&#xff0c;找出数组中一部分数据的最大值和最小值。 题目保证没有无效数据。 函数接口定义&#xff1a; void sublistMaxMin ( int* from, int* to, int* max, int* min ); 其中 from和to都是用户传入的参数&#xff0c;分别存放数组部分数据的起…

深度绑定的二维码

南京西祠 500 万股股份被以 1 元价格挂牌转让。 唏嘘不已&#xff0c;就像现在的孩子们都知道玩抖音&#xff0c;我们那个时代&#xff0c;西祠胡同就是互联网的代名词。在一个叫做西祠胡同的地方&#xff0c;住着一群村里的年轻人&#xff0c;他们痛并快乐着&#xff0c;渴望…

节省时间,提高效率:深入解析MyBatis Plus

1. MyBatis Plus 概述 将Mybatis 通用Mapper PageHelper 升级成 MyBatis Plus 1.1 简介 官网&#xff1a;https://baomidou.com/ 参考教程&#xff1a;https://baomidou.com/pages/24112f/ MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#…

QT之常用按钮组件

QT之常用按钮组件 导入图标 布局 显示选中 实验结果 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_push…

mybatis 的快速入门以及基于spring boot整合mybatis(一)

MyBatis基础 MyBatis是一款非常优秀的持久层框架&#xff0c;用于简化JDBC的开发 准备工作&#xff1a; 1&#xff0c;创建sprong boot工程&#xff0c;引入mybatis相关依赖2&#xff0c;准备数据库表User&#xff0c;实体类User3&#xff0c; 配置MyBatis&#xff08;在applic…

前端打包环境配置步骤

获取node安装包并解压 获取node安装包 wget https://npmmirror.com/mirrors/node/v16.14.0/node-v16.14.0-linux-x64.tar.xz 解压 tar -xvf node-v16.14.0-linux-x64.tar.xz 创建软链接 sudo ln -s 此文件夹的绝对路径/bin/node /usr/local/bin/node&#xff0c;具体执行如下…

实现手机扫码——扫描识别路由器参数

有个应用是批量自动检测无线路由器&#xff0c;检测前需要自动登录路由器的管理界面进行设置&#xff0c;如设置wifi参数、连接模式&#xff0c;或者恢复出厂设置等。进入管理界面的登录用户名是admin&#xff0c;密码则各不相同。此外也需要知道路由器的MAC地址&#xff0c;因…

【已解决】Win7虚拟机安装VMtools报错

在做以前的实验的时候发现要用到Win7虚拟机&#xff0c;于是就安装了一个Win7的虚拟机&#xff0c;但是发现屏幕太小&#xff0c;而且来回复制文本、复制文件太不方便了&#xff0c;索性就安装了VMtools&#xff0c;发现还安装不成– 情况1 报错&#xff1a;本程序需要您将此…

视频转场PR素材|专业级电影故障闪光效果视频过渡PR转场模板

这是一个以故障为主题的专业级电影故障闪光效果视频过渡pr转场模板。使用这些效果来增强视觉效果。包含视频教程。适用软件&#xff1a;Premiere Pro 2023|分辨率&#xff1a;38402160&#xff08;4K&#xff09; 来自PR模板网&#xff1a;https://prmuban.com/36092.html

CSS 文字超出变为省略号

1.单行文本溢出显示符号--必须满足三个条件 width: 100px 先强制一行内显示文本 white-space:nowrap; (默认 normal 自动换行) 超出的部分隐藏 overflow:hidden; 文字用省略号代替超出的部分 text-overflow:ellipsis; 2.多行文本溢出显示省略号 width: 100px overflow&#x…

数据库后门是什么?我们要如何预防它的危害

数据库后门是黑客在数据库中安装的一种特殊程序或代码&#xff0c;可以绕过正常的认证和授权机制&#xff0c;从而获取数据库的敏感信息或者控制整个数据库。黑客可以通过各种方式安装后门&#xff0c;比如利用漏洞、钓鱼、社会工程学等。 数据库后门的危害主要体现在以下几个方…

10 大 Android 手机系统修复软件深度评测

您的新 Android 手机可能因其令人兴奋的性能而印象深刻。然而&#xff0c;随着时间的推移&#xff0c;您可能会发现系统有些地方与以前不太一样。您可能会遇到屏幕无响应、 Android应用程序崩溃、连接问题、电池耗尽等现象。 10 大 Android 手机系统修复软件 好吧&#xff0c;…

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面&#xff0c;包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网&#xff08;LAN&#xff09;与互联网&#xff08;Internet&#xff09;是两个不同的概念&#xff0c;它们分…

老胡的周刊(第119期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 Weekly Hub[2] 汇聚优质精选技术周刊&#x…

虹科Pico汽车示波器 | 汽车免拆检修 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车&#xff0c;搭载10UF01发动机&#xff0c;累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修&#xff0c;维修人员用故障检测仪检测&#xff0c;提示气缸3失火&#xff1b;与其他气缸对调点火线…

python中星号(*)的作用

在 Python 中&#xff0c;*&#xff08;星号&#xff09;可以用于两个不同的上下文&#xff1a;拆包&#xff08;Unpacking&#xff09;和扩展&#xff08;Extended Unpacking&#xff09;。下面分别解释这两种情况。 拆包&#xff08;Unpacking) 当 * 用于一个可迭代对象前面时…

【开源】基于Vue.js的房屋出售出租系统

文末获取源码&#xff0c;项目编号&#xff1a; S 083 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S083。} 文末获取源码&#xff0c;项目编号&#xff1a;S083。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 房屋销售模块2.2 房屋出租模块2.3 预…