JS基础练习

JS基础 -- for循环练习三

2018-05-21  本文已影响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)
            }
        }
上一篇 下一篇

猜你喜欢

热点阅读