美文网首页
js递归(一)——自幂数、水仙花

js递归(一)——自幂数、水仙花

作者: 储锋 | 来源:发表于2018-12-20 16:14 被阅读0次

自幂数定义
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)

自幂数包括:独身数水仙花数四叶玫瑰数五角星数六合数北斗七星数八仙数九九重阳数十全十美数

上代码

 let isSelfPower = num =>{
//此函数的功能是把字幕数添加的数组里面
            let v = [...num.toString()],
                l = v.length,
                p = v.reduce((p,c)=>{
                    return p+Math.pow(c,l)
                },0)
            if(p===num) selfPowerArr.push(num)
        },
        selfPowerArr = [],//保存字幕数的数组
        selfPower = (starNum,endNum,callback)=>{
            //starNum 开始数,endNum结束数,callback添加符合的字幕数到数组
            if(endNum-starNum>6000) {throw "超过最大调用堆栈大小"}
            //限制最大的递归调用
            else if (endNum<=starNum) {return false;}
            callback(starNum++);
            selfPower(starNum,endNum,callback)
        }
    selfPower(0,5999,isSelfPower)
    selfPower(6000,10000,isSelfPower);
    console.log(selfPowerArr);
//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474]

备注:最大调用堆栈大小我设置为6000 超过报错

相关文章

  • js递归(一)——自幂数、水仙花

    自幂数定义自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 +...

  • 数学知识

    什么是水仙花数 水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。附:其他位数的自幂数名字一位自幂...

  • Python练习实例13 | 水仙花数怎么找?

    在编写程序之前,我们首先需要来了解一下什么是水仙花数? 水仙花数,又被称为超完全数字不变数,自恋数、自幂数、阿姆斯...

  • 小程序:水仙花数(自幂数)

  • 习题13-14

    打印水仙花数·· 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。例如:15...

  • 2015上机

    2015 1、求出int范围内2的幂的数(✔) 2、求出0到65535内的水仙花数(✔)

  • shell实现水仙花数

    水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^...

  • 水仙花数

    问题 打印出所有的 水仙花数 问题分析 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例...

  • 自幂数

    自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 ...

  • 四位玫瑰数

    描述 四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。 例如:...

网友评论

      本文标题:js递归(一)——自幂数、水仙花

      本文链接:https://www.haomeiwen.com/subject/ycwykqtx.html