美文网首页JS基础练习
JS基础 -- for循环练习三

JS基础 -- for循环练习三

作者: 我常常问自己我是谁 | 来源:发表于2018-05-21 14:47 被阅读0次

    /*
    * 水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身
    * (例如:1^3 + 5^3 +3^3 = 153),请打印所有的水仙花数
    *
    * 接下来看题了,还是老话重提,一定要看清楚题之后,再去分析题,把题分解成几个小步骤来做,
    *
    * 第一,整个题中出现了打印所有的水仙花数,那么就需要一个循环来做第一步
    *
    */

            //第一,打印所有的单元数,那么先创建并初始化条件表达式
            //在初始化条件表达式时,应该写多少哪?在题的第一句中提到了三位数,那么在写初始化条件表达式时,应该写100,而条件比较表达式最大应写1000
            for(var i = 100; i < 1000; i++) {
                //打印所有单元数
                //alert(i);
                /*
                 * 第二,先获取 i 的百位数、十位数、个位数,并且创建初始化这三个变量
                 */
                //创建百位数变量,并且取整
                var bai = parseInt(i / 100);
                //创建十位数变量,并且取整
                var shi = parseInt((i - bai * 100) / 10);
                //创建个位数变量
                var ge = i % 10;
    
                //第三,判断 i 是否是水仙花数
                if( bai*bai*bai  +  shi*shi*shi  +  ge*ge*ge  == i) {
                    /*
                     * 在if判断条件中三个变量相乘3次(bai*bai*bai),为什么不写变量乘以3(bai*3)?
                     * 这是因为bai值是1的时候,相乘3次的结果还是1,而bai的值是1的时候,乘以3的结果是3,结果并不是1
                     * 我们在这里并不是单纯的像要bai*3,而是相乘3次,这样的结果就与bai*3的结果不一样了。如果看不懂,自己可以
                     * 去打印看看结果有什么
                     */
                    //                  alert(bai*bai)
                    //                  alert('一:'+bai*bai*bai+';二:'+bai*3);
                    //第四,打印所有的水仙花数
                    alert(i)
                }
            }

    相关文章

      网友评论

        本文标题:JS基础 -- for循环练习三

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