循壞練習

剛剛我們說了循環,那接下來,我們也做幾道練習題吧

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,在頁面中接收一個用戶輸入的數字,并判斷該數是否是質數。

  • 質數:只能被1和它自身整除的數,1不是質數也不是合數,質數必須是大于1的自然數。
<!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>
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容