原生JS找出所有的水仙花数

摘要:一个三位的整数,个、十、百的立方和等于该整数(例:153=1*1*1+5*5*5+3*3*3),步骤构思:1、依次循环遍历输出所有三位数,取整,2、设置条件判断

水仙花数:

一个三位的整数,个、十、百的立方和等于该整数(例:153=1*1*1+5*5*5+3*3*3)

步骤构思:
1、依次循环遍历输出所有三位数,取整
2、设置条件判断
3、往数组存储输出


方法一:直接数字

    var arr = [] //所有的水仙花数就是个集合数组
    for (var i = 100; i < 1000; i++) { 
        var a = i % 10; //取出个位数字
        var b = parseInt(i % 100 / 10); //取出十位数字,小法二:((i/10)%10)
        var c = parseInt(i / 100); // 取出百位数字
        if (a * a * a + b * b * b + c * c * c === i) { //用水仙花数条件进行判断
            arr.push(i); // 符合条件则追加
        }
    }
    console.log(arr); // [153, 370, 371, 407]

方法二:取字符串转数字

    var newArr = []
    for (var i = 100; i <= 999; i++) { 
        var str_i = i.toString();
        var hundred = Number(str_i.charAt(0)); //运用charAt(index)函数找百位数
        var ten = Number(str_i.charAt(1)); //找十位数
        var dig = Number(str_i.charAt(2)); //找个位数
        var result = Math.pow(hundred, 3) + Math.pow(ten, 3) + Math.pow(dig, 3); //用Math.pow(变量,次幂)实现立方运算
        if (result === i) //用水仙花数条件进行判断
        {
            newArr.push(i)
        }
    }
    console.log(newArr); // [153, 370, 371, 407]

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_9678