前端学堂
学有所用

查找水仙花数

文章目录[隐藏]

题目

给出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)

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

赞(2) 打赏
未经允许不得转载:前端学堂 » 查找水仙花数

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏