时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
题目描述
所谓水仙花数,是指一个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。
用例1
输入
3
0
输出
153
说明
153是第一个水仙花数
用例2
输入
4
1
输出
8208
解题思路
1.暴力解法,根据n确定n位数的范围,遍历每一个数,把符合公式的数字存入数组中
2.最后判断m是否大于符合要求的数的个数,根据情况输出结果
考点
数学运算</
这是一道华为在线开发者(OD)测试中的题目,涉及水仙花数的概念。水仙花数是指一个n位正整数,其各位数字的n次方和等于该数本身。题目要求根据输入的位数n和索引m,返回第m个n位水仙花数。解题策略包括暴力遍历所有可能的n位数,验证是否满足水仙花数条件。若m超出范围,则返回最后一个水仙花数与m的乘积。案例展示了3位水仙花数153和4位水仙花数8208的情况。
订阅专栏 解锁全文
5430

被折叠的 条评论
为什么被折叠?



