js练习题

一、打印三角形

    *
    **
    ***
    ****

for(var i = 1;i <= 4;i++){
        for(var j = 1;j <= i;j++){
            document.write("*");
        }
        document.write("<br>");
    }

 

     *
      **
     ***
    ****

for(var i = 1;i <= 4;i++){
        for(var k = 4;k > i;k--){
            document.write("&nbsp;");
        }for(var j = 1;j <= i;j++){
            document.write("*")
        }
        document.write("<br>")
    }
for(var i = 1;i <= 4;i++){
        for(var k = 1;k <=(4-i);k++){
            document.write("&nbsp;");
        }for(var j = 1;j <= i;j++){
            document.write("*")
        }
        document.write("<br>")
    }

 

 

   ****
     ***
      **
       *

for(var i =4;i > 0;i--){
        for(var k = 4;k>i;k--){
            document.write("&nbsp;");
        }for(var j = 1;j<=i;j++){
            document.write("*")
        }
        document.write("<br>")
    }

 

   

    ****
    ***
    **
    *

for(var i = 1;i <= 4;i++){
        for(var j = 4;j >= i;j--){
            document.write("*");
        }
        document.write("<br>");
    }

   

 

       *
      ***
     *****
    *******

for(var i=0;i<4;i++){
            for(var j=5;j>i;j--){
               document.writeln("&nbsp");
            }
            for(var k=0;k<2*i+1;k++){
               document.writeln("*");
            }
            document.writeln("</br>")
         }

 

二、水仙花数   三位数  各个数字的立方和等于本身,153    1*1*1 + 5*5*5 + 3*3*3  = 153

for(var i = 100;i < 999;i++){
        var bai = parseInt(i/100);
        var shi = parseInt((i-bai*100)/10);
        var ge = i - bai*100 - shi*10;
        if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i){
            document.write(i  + ",")
        }
    }

 

四、100元购物卡,牙刷5元,香皂2元、洗发水15元 100元正好花完有多少种可能

var bs = 0;
    for(var i = 0;i<=20;i++){
        for(var j = 0;j <= 50;j++){
            for(var k = 0;k <= 6;k++){
                if(i*5 + j*2 + k*5 == 100){
                    bs++
                }
            }
        }
    }alert(bs);

 

 

100内与7相关的数

for(var i = 0;i <= 100;i++){
        if(i%7 == 0 || i%10 == 7 || parseInt(i/10) == 7){
            document.write(i+",")
        }
    }

 

六、100以内的质数、只能被1和自己整除

var flag = true
    for(var i = 2;i < 100;i++){
        flag = true;
        for(var j = 2;j < i;j++){
            if(i%j == 0){
                flag = false;
            }
        }if(flag){
            document.write(i+',')
        }
    }

 

16、大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配?

for(var i = 0;i <= 50;i++){
        for(var j=0;j <= 100;j++){
            for(var k = 0;k <= 100;k++){
                if(i*2+j*1+k/2 == 100 && i+j+k == 100){
                    document.write("大马:"+i+"匹"+"")
                }
            }
        }
    }

 

17、有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,
棋盘上放的所有芝麻的重量

var sum = 0;
    for(var i = 1;i <= 64;i++){
        var num = 1;
        for(var j = 0;j < i-1;j++){
            num = num*2;
        }
        sum = sum+num;
    }
    alert(sum*0.000)

 

18、公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。
到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?

var num = 1;
    for(var i = 6;i >=1;i--){
        num = (num+1)*2;
    }alert(num);

 

 

 

1将数组中数字内容求和

var sum = 0;
    var attr = [12,34,2,5,76];
    for(var i = 0;i < attr.length;i++){
        sum = sum + attr[i];
    }alert(sum);

2、var arr = [4, 0, 7, 9, 0, 0, 2, 6, 0, 3, 1, 0];
要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组

var attr = [4, 0, 7, 9, 0, 0, 2, 6, 0, 3, 1, 0];
    var newAttr = [];
    for(var i = 0;i<attr.length;i++){
        if(attr[i] == 0)continue;
        newAttr.push(attr[i]);
    }alert(newAttr);

3、写出一个javascript的函数,实现对一个数组去重的功能。
 构建一个新的数组存放结果。
 for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比。

若结果数组中没有该元素,则存到结果数组中。

var attr = [2,34,2,5,6,9,8,4,34,67,6];
    var newAtrr = [];
    var flag = true;
    for(var i = 0;i< attr.length;i++){
//        方法一
//        if(newAtrr.indexOf(attr[i]) == -1){
//            newAtrr.push(attr[i]);
//        }
//        方法二
        flag = true;
        for(var j = 0;j < newAtrr.length;j++){
            if(newAtrr[j] == attr[i]){
                flag = false;
            }
        };
        if(flag){
            newAtrr.push(attr[i])
        }
    }console.log(newAtrr);

4、数组最大值

var attr = [12,34,2,5,76];
    var max =attr[0];
    var maxIndex = 0;
    for(var i = 0;i<attr.length;i++){
        if(attr[i]>max){
            max = attr[i];
            maxIndex = i;
        }
        max = attr[i]?attr[i]:max;
    }
    alert(max);

6、.往数组里面添加数据的时候去重

var attr = [10,20];
    for(var i = 0;i < 10;i++){
        var num = prompt("请输入数字");
        if(attr.indexOf(num) == -1){
            attr.push(num);
        }
    }
    console.log(attr);

 5、.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序。
用的冒泡排序的写法

var attr = [];
    for(var i = 0;i < 10;i++){
        attr[i] = parseInt(Math.random()*90+10);
    }
    var attr = [69,54,95,47,88,17,42,93,85,67];
    for(var j = 0;j < attr.length-1;j++){
        for(var k = j+1;k < attr.length;k++){
            if(attr[j] > attr[k]){
                var zhong = attr[j];
                attr[j] = attr[k];
                attr[k] = zhong;
            }
        }
    }
     console.log(attr);
     var b = [69,54,95,47,88,17,42,93,85,67];
     for(j = 0;j<b.length;j++){
         for(k = 0;k < b.length-1-j;k++){
             if(b[k] > b[k+1]){
                 var temp = b[k];
                 b[k] = b[k+1];
                 b[k+1] = temp;
             }
         }
     }
posted @ 2018-08-20 11:51  井盖同学  阅读(14502)  评论(1编辑  收藏  举报