一、题目描述
所谓水仙花数,是指一个n位的正整数,其各位数字的n次方和等于该数本身。
例如153是水仙花数,153是一个3位数,并且153 = 1^3 + 5^3 + 3^3。
二、输入描述
第一行输入一个整数n,表示一个n位的正整数。n在3到7之间,包含3和7。
第二行输入一个正整数m,表示需要返回第m个水仙花数。形如HH:SS字符串,表示原始输入。
三、输出描述
返回长度是n的第m个水仙花数。个数从0开始编号。
若m大于水仙花数的个数,返回最后一个水仙花数和m的乘积。
若输入不合法,返回-1。
四、解题思路
- 读取输入的n和m;
- 检查n的范围是否在3到7之间,如果不在范围内,输出-1并结束程序;
- 根据n的值计算出范围内的最小值和最大值,最小值为10的(n-1)次方,最大值为10的n次方减1;
- 初始化一个HashMap用于存储水仙花数,键为水仙花数的序号,值为水仙花数本身;
- 初始化计数器count为0,用于记录水仙花数的个数;
- 初始化变量las