循坏练习

2018-06-19  本文已影响0人  HDhandi

刚刚我们说了循环,那接下来,我们也做几道练习题吧

1 ,用javascript打印出1-100之间奇数之和

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>奇数之和</title>
    <script type="text/javascript">
        /*打印1-100之间所有奇数之和*/
        //保存奇数之和
        // var sum = 0;
        //打印1-100之间的数
        for(var i=1,sum=0; i<=100; i++){
            //判断i是否是奇数
            //不能被2整除的数是奇数
            if(i % 2 != 0){
                //如果i除以2有余数则证明i是奇数
                // console.log(i);
                sum += i;
                }
        }
        console.log("奇数之和为:" + sum);
    </script>
</head>
<body>

</body>
</html>

2,用javascript打印1-100之间所有7的倍数的个数及总和

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>7的倍数</title>
    <script type="text/javascript">
        /*打印1-100之间所有7的倍数的个数及总和*/
        //定义一个变量,来保存总和
        var sum = 0;
        //定义一个计数器,来记录数量
        var count = 0;
        //打印1-100之间的数
        for(var i=1; i<=100; i++){
            //判断i是否是7的倍数
            if (i % 7 == 0) {
                // console.log(i);
                sum += i;
                //使计数器自增
                count++;
            }
        }
        console.log("总和为:" + sum);
        console.log("个数为:" + count);
    </script>
</head>
<body>

</body>
</html>

3,用javascript水仙花数

水仙花数是指一个3位数,它的每个位上的数字的3 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153),请打印所有的水仙花数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>水仙花数</title>
    <script type="text/javascript">
        /*水仙花数是指一个3位数,它的每个位上的数字的3 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153),请打印所有的水仙花数*/
        //打印所有的三位数
        for(var i=100; i<1000; i++){
            //获取i的百位、十位、个位的数字
            //获取百位数字
            var bai = parseInt(i/100);
            //获取十位的数字
            var shi = parseInt((i-bai*100)/10);
            //获取个位数字
            var ge = i % 10;
            //判断i是否是水仙花数
            if(bai**3 + shi**3 + ge**3 == i){
                console.log(i);
            }
        }
    </script>
</head>
<body>

</body>
</html>

4,在页面中接收一个用户输入的数字,并判断该数是否是质数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>是否是质数</title>
    <script type="text/javascript">
        /*
        在页面中接收一个用户输入的数字,并判断该数是否是质数。
        质数:只能被1和它自身整除的数,1不是质数也不是合数,质数必须是大于1的自然数
        */
        var num = prompt("请输入一个大于1的整数:");
        //判断这个值是否合法
        if(num <= 1 || isNaN(num)){
            alert('该值不合法!');
        }else{
            //创建一个变量来保存当前的数的状态,默认当前num是质数
            var flag = true;
            //判断num是否是质数
            //获取2-num之间的数
            for(var i=2; i<num; i++){
                // console.log(i);
                //判断num是否能被i整除
                if(num % i ==0){
                    //如果能整除,说明num一定不是质数
                    flag = false;
               }
            }
            //如果num是质数则输出
            if(flag){
                alert(num + "是质数!");
            }else{
                alert(num + "不是质数!");
            }
        }
    </script>
</head>
<body>

</body>
</html>

5 ,打印实现一个99乘法表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>99乘法表</title>
    <style type="text/css">
        body{
            width: 1500px;
        }
        span{
            display: inline-block;
            width: 100px;
        }
    </style>
    <script type="text/javascript">
         /*打印99乘法表
         1*1=1
         1*2=2 2*2=4
         1*3=3 2*3=6 3*3=9
         1*4=4 2*4=8 3*4=12 4*4=16
         ……
         1*9=9              …… 9*9=81
         */
        //创建外层循环,用来控制乘法表的高度(行)
        for(var i=1; i<=9; i++){
            //创建一个内层循环来控制乘法表的宽度(列)
            for(var j=1; j<=i; j++){
                document.write("<span>"+j+"*"+i+"="+i*j+"</span>");
            }
            //输出一个换行
            document.write('<br>');
        }
    </script>
</head>
<body>

</body>
</html>

6 ,打印出1-100之间所有的质数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>1-100之间所有的质数</title>
    <script type="text/javascript">
        /*打印出1-100之间所有的质数
        36
        1 36
        2 18
        3 12
        4 9
        6 6
         */
        //测试如下的程序的性能
        //在程序执行之前,开启计时器
        //console.time("计时器的名字")可以用来开启一个计时器
        //它需要一个字符串作为参数,这个字符串将会作为计时器的标识
        console.time("test");
        for(var i=2; i<=10000; i++){
            //创建一个布尔值,用来保存结果,默认i是质数
            var flag = true;
            //判断i是否是质数
            //获取2-i之间的数//可以通过Math.sqrt()对一个数进行开方
            for(var j=2; j<=Math.sqrt(i); j++){
                 // console.log(i);
                //判断i是否能被j整除
                if(i % j ==0){
                    //如果能整除,说明i一定不是质数,修改flag值为false
                    flag = false;
                    //一旦进入判断,则证明i不可能是质数了,此时循环再执行已经没有任何意义了
                    //使用break来结束循环
                    break;
                
                    //不加242ms 加29ms 加开方2ms
                }
             }
            //如果i是质数则输出
            //console.timeEnd()用来停止一个计时器,需要一个计时器的名字作为参数
            if(flag){
                console.log(i);
            }
        }
        //终止计时器
        console.timeEnd("test");
    </script>
</head>
<body>

</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读