首页 > 技术文章 > JavaScript-04for循环练习

mengwenbiao 2020-08-13 21:30 原文

1. 打印99乘法表

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        /*1. 99乘法表===>上三角*/
        document.write("<table style='border:none; border-collapse: collapse; border-spacing: 0;'  border='1' width='900' height='450'>");
        for(var row=1;row<=9;row++){
            document.write("<tr>");    
            for(var cell=1;cell<=9;cell++){
                if(cell>=row){
                    document.write("<td style='border: 1px solid black;'>"+cell+"x"+row+"="+cell*row+"</td>");
                }else{
                    document.write("<td style='border: none;'></td>");
                }
            }            
            document.write("</tr>");
        }        
        document.write("</table>");
            
    </script>
</html>

2. 打印出:公元元年到2020 年所有的闰年

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        //        打印出:公元元年到2020 年所有的闰年
        /*        公元元年=1
         
         * 闰年:1.4的倍数并且不是100的倍数
         *      2.400的倍数
         * */
        for(var year = 1; year <= 2020; year++) {
            if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                document.write(year);
                document.write("<br>");
            }
        }
    </script>
</html>

3. 求 1!+2!+3!+....10!

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
    </body>
    <script type="text/javascript">
        //        求 1!+2!+3!+....10!
        /* 分析:10个数相加【】=>sum=0;for()
         * 1
         * 1*2
         * 1*2*3
         * 1*2*3*4
         * */

        /*
         * //方法1
          var sum=0;
          for(var i=1;i<=10;i++){
              //计算阶乘
              var jc=1;
              //计算阶乘的过程
              for(var j=1;j<=i;j++){
                  jc*=j;
              }
              
              sum+=jc;
          }
          
          document.write(sum);*/

        //方法2:迭代
        var sum = 0;
        var jc = 1;
        for (var i = 1; i <= 10; i++) {
            debugger;
            jc *= i;
            sum += jc;
        }
        document.write(sum);
    </script>

</html>

4. 求数列1,1,2,3,5,8,13........;   第30位上的值

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        //        4.求数列1,1,2,3,5,8,13........;   第30位上的值
        /*
         分析:
         * F1=F2=1;
         * Fn=F(n-1)+F(n-2);n>2
         * F30=F29+F28
         * F29=F28+F27;
         * F28=F27+F26
         * .........
         * F4=F3+F2=2+1=3
         * F3=F2+F1=1+1=2;
         * */
        var Res=0;
        var Fx=1;
        var Fy=1;
        for(var n=3;n<=30;n++){
            Res=Fy+Fx;
            Fx=Fy;
            Fy=Res;
        }
        document.write(Res);
    </script>
</html>

5. 打印三角形和棱形

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
    </body>
    <script type="text/javascript">
        //        打印直角三角形
        
        for(var i=0;i<5;i++){
            for(var j=0;j<=i;j++){
                document.write("*&nbsp;");
            }
            document.write("<br>");
        }
        document.write("<br>");
        document.write("**************************");
        document.write("<br>");
        
        for(var i=0;i<5;i++){
            for(var j=0;j<5;j++){
                if(4-j<=i){
                    document.write("&nbsp;*");
                }
                else{
                    document.write("&nbsp; ");
                }
            }
            document.write("<br>");
        }
        
        document.write("<br>");
        document.write("**************************");
        document.write("<br>");
        
        //等腰三角形及菱形
        
        for(var row=0;row<6;row++){
            
            for(var i=1;i<=11;i++){
                if(i==6-row || i==6+row){
                    document.write("&nbsp;*");
                }
                else{
                    document.write("&nbsp; ");
                }
            
            }
            document.write("<br>");
        }
        for(var row=4;row>=0;row--){
            
            for(var i=1;i<=11;i++){
                if(i==6+row || i==6-row){
                    document.write("&nbsp;*");
                }
                else{
                    document.write("&nbsp; ");
                }
            
            }
            document.write("<br>");
        }
        
    </script>
</html>

6. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        /* X10 =(X9/2)-1
         * X9= (X10+1)*2 
         * X8= (X9+1)*2
         * */
        var before=0;
        var td=1;
        for(var i=10;i>1;i--){
            before=(td+1)*2;
            td=before;
        }
        
        document.write(before);
    </script>
</html>

7. 求出1-100之间所有的质数(质数:只能被1和他本身整除的数)

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
    </body>
    <script type="text/javascript">
        //求出1-100之间所有的质数(只能被1和他本身整除的数)

        for(var i = 2; i < 100; i++) {
            var flag=true;
            //求证
            for(var k=2;k<(i/2)+1;k++){//例如5 先和2取余不为0,继续和3 4取余还是不为0,跳出循环;
                if(i%k==0){// 例 如果i为4,就会执行if语句,flag为false,不执行后面的语句
                    flag=false;
                    break;
                }
            }
            // 判断并输出质数
            if(flag) {
                document.write(i);
                document.write("<br>");
            }
        }
    </script>
</html>

8. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
    </body>
    <script type="text/javascript">
                var n=90;
        var k=2;
        document.write(n+"=");
        while(n!=k){
            
            if(n%k==0){
                document.write(k);
                document.write("*");
                n=n/k;
            }
            else{
              k++;
            }
            
        }
        document.write(k);
    </script>

</html>

9. 判断是否为完数

  一个数如果恰好等于它的因子之和,这个数就称为"完数"。
  例如6=1+2+3.编程 找出1000

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">

         for(var i=1;i<=1000;i++){
             var flag=true;
             //求证
             var temp=0;
             for(var j=1;j<i;j++){
                 if(i%j==0){
                   temp+=j;
                 }
             }
//              if(i==temp){
//                  flag=true;
//              }else{
//                  flag=false;
//              }
            flag=(temp==i);
                          
             if(flag){
                 document.write( i+"是完数<br>");
             }
         }
    </script>
</html>

10. 求100到1000的水仙花数

  所谓水仙花数是指一个三位数,各位数字的立方和等于该数本身。(如153=1^3+5^3+3^3)。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            var sum=0;
            for(var i=100;i<1000;i++){
                
                var a=parseInt(i/100);//取百位数
                
                var b=parseInt(i/10%10);//取十位数
                
                var c=parseInt(i%10);//取个位数
            
                sum=a*a*a+b*b*b+c*c*c;
                if(sum == i){
                    document.write(sum);
                    document.write("<br>");
                }
                
            }        
        </script>

    </body>
</html>

 

推荐阅读