<js>小练习题

1.为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?

    var a = 89;
    var d = parseInt(a / 24);
    var h = a % 24
    console.log("需要" + d + "天" + h + "小时")

2.输入月份 显示当月天数 利用case穿透简化代码

 var m = 4;
    switch (m) {
        case 2:
            console.log("28");
            break;
        // 只保留最后一个 向下穿透
        case 3:
        case 1:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            console.log("31");
            break;
        // 只保留最后一个 向下穿透
        case 4:
        case 6:
        case 9:
        case 11:
            console.log("30");
            break;
    }

3.根据一个数字日期,判断这个日期是这一年的第几天。例如: 2016和2和11,计算后结果为42

 var m = 3;
    var d = 11;
    var y = 2016;
    var Fab;

    switch (m) {

        default: console.log("请重新输入正确月份");

        case 12:
                d += 30; //d=11+30=41
        case 11:
                d += 31; //d=41+31.....赋值累加
        case 10:
                d += 30;
        case 9:
                d += 31;
        case 8:
                d += 30;
        case 7:
                d += 30;
        case 6:
                d += 31;
        case 5:
                d += 30;
        case 4:
                d += 31;
        case 3:
                d += (y % 4 === 0 && y % 100 !== 0 || y % 400 === 0) ? 29 : 28;
        case 2:
                d += 31;
        case 1:
                d += 0;

    }
    console.log("这是" + y + "年的第" + d + "天");

4.多行多列的*

    // 循环的嵌套 来解决多行多列
    // 外层循环控制行 内层循环控制列
    for (var j = 1; j < 13; j++) {
        for (var i = 0; i < j; i++) {
            document.write("*");
        }
        document.write("<br>")
    }

5.阶乘之和

    // 循环的嵌套 来解决多行多列
    // 外层循环控制行 内层循环控制列
    // 1!+2!+3!+4!
    // 1*1
    // 1*2
    // 1*2*3
    // 1*2*3*4

    for (var j = 1; j <= 5; j++) {
        var a = 1;
        for (var i = 1; i <= j; i++) {
            a = a * j;
        }
        //i句子加满了跳出 加和
        sum = sum + a;
    }
    console.log(sum);

6.九九乘法表

    // 1*1=2
    // 1*2=2 2*2=4
    // 1*3=3 2*3=6 3*3=9
    // .......
    for (var i = 1; i <= 9; i++) {
        for (var j = 1; j <= i; j++) {
            document.write(j + "*" + i + "=" + i * j + "&nbsp;")
        }
        document.write("<br>")
    }

7.篮球从5米高的地方掉下来,每次弹起的高度是原来的30%,经过几次弹起,篮球的高度小于0.1米(必须用到关键字break)

    var h = 5;
    var i = 1;
    while (true) {
        h = h * 0.3;
        if (h < 0.1) {
            break;
        }
        i++;
    }
    console.log(i);

8.打印出1000-2000年中所有的闰年,并以每行四个数的形式输出(document.write)

    var n = 0;
    for (var y = 1000; y <= 2000; y++) {
        if (y % 4 === 0 && y % 100 != 0 || y % 400 === 0) {
            document.write(y + "&nbsp;&nbsp;");
            n++;
            // 只转一行 放在外面就会一直转行
            if (n % 4 === 0) {
                document.write("<br>")
            }
        }
    }

9.求100-999之间的水仙花数 abc =a^3+b^3+c^3

   for (var i = 100; i <= 999; i++) {
        // 给if使用,放在外面if就用不到了
        var a = parseInt(i / 100);
        var b = parseInt(i / 10) % 10;
        var c = i % 10;
        if (i === a * a * a + b * b * b + c * c * c) {
            console.log(i);
        }
    }

10.完成一个梯形打印功能

    for (i = 1; i <= 7; i++) {
        for (var j = 7; j > i; j--) {
            //空格部分
            document.write("&nbsp");
        } //星区1
        for (var j = 0; j <= i; j++) {
            document.write("*");
        } //星区2
        for (var j = 1; j <= i; j++) {
            document.write("*");
        } //换行
        document.write("<br>");
    }

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

// 每个方格是前一个的二倍
    // 1
    // 1*2
    // 1*2*2
    // 1*2*2*2
    // 1*2*2*2*2
    // 1*2*2*2*2*2
    var sum = 0;
    for (var i = 1; i <= 64; i++) { //a棋盘格
        var a = 1; //每行初始化a为1
        for (var j = 1; j <= i; j++) {
            a = a * 2;
        }
        sum += a;
    }
    console.log(sum * 0.00001);

12.加密处理

//某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,请编写一个函数,传入原文,输出密文

    // 3   7   1  5

    // 8  12  6  10

    // 8   2   6   0

    // 0   6    2   8

   function fun(num) {
        var a = parseInt(num / 1000);
        var b = parseInt(num / 100) % 10;
        var c = parseInt(num / 10) % 10;
        var d = num % 10;
        // console.log(a, b, c, d);
        a = (a + 5) % 10;
        b = (b + 5) % 10;
        c = (c + 5) % 10;
        d = (d + 5) % 10;
        // 拼接返回
        return '' + d + c + b + a;
    }
    console.log(fun(3715));

13.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米

    // 1   0.0001*2
    // 2   0.0001*2*2
    // 3   0.0001*2*2*2

    var h = 0.0001;
    var i = 0;
    while (true) {
        h = h * 2;
        i++;
        if (h > 8848) {
            break;
        }
    }
    console.log(i); //i=27

14.羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能?

for (i = 1; i < 200 / 15; i++) {
        for (j = 1; j < 200 / 3; j++) {
            for (k = 1; k < 200 / 2; k++) {
                if (i * 15 + j * 3 + k * 2 === 200) {
                    console.log('羽毛球拍' + i + '个,球' + j + '个,水' + k + '个');
                }
            }
        }
    }

15.利用递归求10的阶乘

    // 10!=10*9!
    //         9!=9*8!
    //              8!=8*7!
    //                  ...

    function fn(num) {
        if (num === 1) {
            return 1;
        }
        return num * fn(num - 1);
    }
    console.log(fn(10));

16.随机十六进制颜色值(#)

   // 生成随机的十六进制的颜色值 6位 每两位是一个部分
    // 15 f 一位 在f前加“0”,通过字符长短判断是否加“0”

    function random(min, max) {
        return Math.round(Math.random() * (max - min) + min);
    }



    function randomColor() {
        var r = random(0, 255).toString(16);
        var g = random(0, 255).toString(16);
        var b = random(0, 255).toString(16);
        return '#' + creatZero(r) + creatZero(g) + creatZero(b);

        function creatZero(n) {
            return n.length < 2 ? "0" + n : n;
        }
    }

    document.body.style.background = randomColor();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值