Javascript----练习三(循环递归)

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Javascript   练习三</title>
</head>
<style type="text/css">
/*  table{
          border: 1px solid #B2B2B2;
          border-collapse: collapse;
          margin: 0 auto;
       }
       table tr{
          border-collapse: collapse;
       }
       table tr:nth-child(1){
        background-color: #DADADA;
        color: red;
       }
       table tr td{
        display: inline-block;
        width: 60px;
        height: 60px;
        line-height: 60px;
        text-align: center;
        border-collapse: collapse;
        border: 1px solid #B2B2B2;
       }
       table tr td:nth-child(1){
        background-color: #DADADA;
        color: red;
       }
    */

table {
    border: 1px solid #B2B2B2;
    border-collapse: collapse;
    margin: 0 auto;
}

table tr {
    border-collapse: collapse;
}

table tr:nth-child(1) {}

table tr td {
    display: inline-block;
    width: 60px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    border-collapse: collapse;
    border: 1px solid #B2B2B2;
}

table tr td:nth-child(1) {}

.b {
    color: black;
    background-color: white;
}

.w {
    color: white;
    background-color: black;
}
</style>

<body>
    <script type="text/javascript">
    /***********************************
                1.请写出javascript的三种循环
                ***********************************/
    /*
      for,while,do while
    */

    /***********************************
    2.请写出break和continue作用和区别
    ***********************************/

    /*
       作用:中断循环
       区别: break中断当前整的循环
              continue 中断当前循环

    */

    /***********************************
    3.循环输出1-100 里奇数
    ***********************************/

    /*  for(var i = 1;i<=99;i+=2){
          console.log(i);
      }*/



    /***********************************
    3.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
    (程序分析:请抓住分子与分母的变化规律。)
    ***********************************/


    /*  var sum = 0;

             var x = 2;
             var y = 1;

             for(var i= 0;i<20;i++){
                 var div = x/y;
                 var t = x;
                 x = x+y;
                 y = t;
                 sum+=div;
             }
                 console.log(sum);
        */


    /***********************************
    4.有一座桥,当你身上所拥有的钱大于30000时,每过一次桥则需要支付3000元。当你身上的钱小于或等于30000时,每过一次桥则需要支付你身上10%的钱。已知有一个人身上有33000元,问此人能过这座桥多少次之后,身上的钱会少于100块?
    ***********************************/

    /* var i = 0;
     var n = 33000;

     while(n>100){
         if(n>30000){
             n -= 3000;
             i++;
         }
         else{
             n -= n*0.1;
             i++;
         }
     }

     console.log(i)*/




    /***********************************
    5.小明去存1000钱,每天会产生1%的利息,求问,30天后,小明可以拿回多少钱
    ***********************************/

    /* var n = 30;
     t = 1000;
      sum = 1000;
     for(var i = 0;i<n;i++){
          sum *=1.01;
     }
     console.log(sum);


     function getSum(n){
         if(n==0){
            return t;
         }
         else{
            return getSum(n-1)*1.01;
         }
     }

     console.log(getSum(30));*/




    /***********************************
    6.小明题目升级版,小明拿着1000块在周一买入基金,一开户立给10块红利,
    逢周六日没有利息,平时利息为1%,请问30天后,小明可以拿回多少钱?
    ***********************************/
    /*var sum = 1000+10;
    for(var i = 1;i<=30;i++){
        if(i%7==0||i%6==0){
            sum = sum;
        }
        else{
           sum*=1.01;
        }
    }

    console.log(sum);

    function getSum(n){
       if(n==0){
           return 1000;
       }
       else{
           if(n%7==0||n%6==0){
               return getSum(n-1);
           }
           else{
               return getSum(n-1)*1.01;
           }
       }
    }


    console.log(getSum(30));*/




    /***********************************
    7.乘法口诀表:
    让学生输出4种方向的乘法口诀表
    ***********************************/


    /*   
      document.write("<table border = '1'>");
        for(var i = 0; i<=9;i++){
            if(i == 0){
                 document.write("<tr>");
                for(var j = 0; j<=9 ;j++){
                     document.write("<td>"+j+"</td>");
                 }
                 document.write("</tr>");
            }
            else{
                 document.write("<tr>");
                for(var j = 0;j<=9;j++){
                    if(j==0){
                         document.write("<td>"+i+"</td>");
                    }
                    else{
                        document.write("<td>"+i*j+"</td>");
                    }
                }
                 document.write("</tr>");

            }

        }

        document.write("</table>");*/




    /***********************************
    8.给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
    ***********************************/

    /*  num = 43431;
             i=0;
             var s = 1;

             while(num>0){
                console.log("i:"+num);
                num=parseInt(num/10);
                i++;
             }

             console.log("length:"+i);




            var num = 43431;
            var max = num;
            var result=0;

           while(num>0){


               console.log(num+"%"+10+"="+(num%10));

                if(num>10){
                   result =(result + parseInt(num%10))*10;
                }
                else{
                    result +=num;
                }s

                num=parseInt(num/10);

           }



   console.log(max+"->"+result);

*/





    /***********************************
    9.求100个随机数之和,随机数要求为0—9的整数
    ***********************************/

    /*var sum = 0;
    for(var i = 0;i<10;i++){
        var num = parseInt(Math.random()*10);
        console.log(i+":"+num);
        sum+=num;
    }

    console.log("sum:"+sum);*/


    /***********************************
    10.通过键盘输入一个任意的正整数(建议这个数比3大),
    在网页中输出3至这个数之间所有能被3整除的数字。
    ***********************************/

    /* var num = parseInt(prompt("请输入一个大于三的整数:"));
     
     var  j = 1;
     for(var i = 3;i<=num;i++){
         if(i%3==0){
             console.log(j+":"+i);
         }
     }
       */



    /**********************************************
    11.黑白棋   奇数行 && 奇数列 || 偶数行 && 偶数列
    **********************************************/

    /* var n = 10;
     var m = 10;
          
    document.write("<table class = 't2'>");   
     for(var i = 0;i<n;i++){
        document.write("<tr>");
        for(var j =0;j<m;j++){

            if(i%2==1&&j%2==1||i%2==0&&j%2==0){
             
               document.write("<td class = 'w'>白</td>");
            }
            else{
                document.write("<td class = 'b'>黑</td>");
            }
        }
         document.write("</tr>");
     }

      document.write("</table>");  */




    /**********************************************
    12.(提高题)输入一整数A,判断它是否素数(除了自己和1之外,不能被其它数整数)
    **********************************************/
    /*
                var num = parseInt(prompt("请输入一个大于三的整数:"));


                  function isPrime(number){
                    //小于2都不是素数
                          if (number<2) {return false};
                    //2是素数,被2整除的都不是素数
                           if (number===2) {
                                   return true
                           }else if(number%2===0){
                                   return false;
                           };
                    //依次判断是否能被奇数整除,最大循环为数值的开方
                            var squareRoot=Math.sqrt(number);
                             for(var i=3;i<=squareRoot;i+=2){
                              if (number%i===0) {
                                    return false;
                               };
                          }
                          return true;
                    }
                     var s = isPrime(num)==true?"是素数":"不是素数";


                    console.log(num+s);*/





    /***********************************
    13.(提高题)将100元整钞换成20元、10元、5元、2元、1元零钱,要求零钱总张数为30张,求有多少种换法?假如要求每种纸币必须至少有一张,又有多少种换法呢?
    ***********************************/



    /*   var n = 0;
       for(var i = 0;i<100;i++){
          for(var j = 0;j<50;j++){
            for(var k = 0;k<20;k++){
                for(var l = 0;l<10;l++){
                      for(var m = 0;m<5;m++){
                          if((i*20+j*10+k*5+l*2+m) == 100 && i+j+k+l+m ==30){
                                n++;
                                console.log("第"+n+"种情况:"+"1元"+i+"张,2元"+j+"张,5元"+k+"张,10元"+l+"张,20元"+m+"张");
                          }
                    }
                }
            }
          }
       }

       console.log(n);*/



    /*var n = 0;
     for(var i = 1;i<100;i++){
        for(var j = 1;j<50;j++){
          for(var k = 1;k<20;k++){
              for(var l = 1;l<10;l++){
                    for(var m = 1;m<5;m++){
                        if((i*20+j*10+k*5+l*2+m) == 100){
                              n++;
                              console.log("第"+n+"种情况:"+"1元"+i+"张,2元"+j+"张,5元"+k+"张,10元"+l+"张,20元"+m+"张");
                        }
                  }
              }
          }
        }
     }

     console.log(n);*/
    </script>
</body>

</html>

  

posted @ 2017-07-21 16:25  SunLike阿理旺旺  阅读(469)  评论(0编辑  收藏  举报