赞助
   /*
            水仙花数
                如果一个三位数 个位,十位,百位的立方和,等于这个数值,就称为水仙花数
                求 所有 3位数中 那些数 是 水仙花 数
            思路 : 本质是 判断 123 是否是水仙花数
                就是 1的立方 + 2 的立方 + 3 的立方 == 123 本身

            关键是 如何获取 3位数 每一位上的数值
            
        */

        var num = 123;

        // 百位数值  num是123 num除以100 是  1.23  然后 parseInt() 获取整数部分 就是 1
        var a = parseInt( num / 100 );
        console.log(a);

        // 十位数值 
        // 方法1 num是 123 减去 百位数值 a*100 也就是 123-1*100 结果是 23
        // 结果 除以 10 也就是 23/10 是 2.3 再对结果取整 就是 2
        // var b = parseInt( ( num - a*100 ) / 10 );

        // 方法2 num 对 100 求余数 123 % 100 余数就是 23
        // 结果 除以 10 也就是 23/10 是 2.3 再对结果取整 就是 2
        var b = parseInt( (num % 100) / 10 );
        console.log(b);

        // 个位数
        // 方法1 : num 减去 a*100 减去 b*10 结果就是 个位数值
        // var c = num - a*100 - b*10;

        // 方法2 : num 对 10 求余数 , 结果就是 个位数值
        var c = num % 10;
        console.log(c);

        // 现在只要随机生成 100-999的所有三位数值
        // 使用上述方法,获取生成数值,百位,十位,个位的数值
        // 然后进行判断,是否符合条件即可

        for(var i = 100 ; i <= 999 ; i++){
            var a = parseInt( i / 100 );
            var b = parseInt( (i % 100 ) / 10 );
            var c = parseInt( i % 10 );
            if(a*a*a + b*b*b + c*c*c == i){
                console.log(`数值${i}是水仙花数`);
            }
        }
posted on 2020-11-22 21:41  Tsunami黄嵩粟  阅读(209)  评论(0编辑  收藏  举报