查找水仙花数

题目

给出n,找到所有的n位十进制水仙花数。

示例

水仙花数:一个 N 位非负整数,其各位数字的 N 次方和等于该数本身

示例:

153 = 1^3 + 5^3 + 3^3

370 = 3^3 + 7^3 + 0^3

371 = 3^3 + 7^3 + 1^3

1634 = 14^4 + 64^4 + 34^4 + 44^4。

更详细的推荐:维基百科

分析

比如 n = 1, 所有水仙花数为:[0,1,2,3,4,5,6,7,8,9]

而对于 n = 2, 则没有 2 位的水仙花数,返回 []

Just Try

请你自动动手试一下:在线编程环境

想想有没有其他思路?

想想时间和空间复杂度,能否优化一下

真的做不到么?

let you think, think makes you happy!

参考答案

function isWaterFlowerNum(num){
  let numArr = ("" + num).split("")
  return numArr.reduce((a,b) => a + Math.pow(b, numArr.length), 0) == num
}
function main(param) {
  console.show(isWaterFlowerNum(param))
}
main(371)

代码复制过来试一下:在线编程环境



请遵守《互联网环境法规》文明发言,欢迎讨论问题
扫码反馈

扫一扫,反馈当前页面

咨询反馈
扫码关注
返回顶部