JS初级题目整理

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

        var y = 2016 ;
        var m = 2;
        var d = 11;
        var num = 0;
        // 利用case的穿透和累加效果,实现在计算每月天数时的代码的缩写
        switch(m){
            case 12: num = num + 30;
            case 11: num = num + 31;
            case 10: num = num + 30;
            case 9: num = num + 31;
            case 8: num = num + 31;
            case 7: num = num + 30;
            case 6: num = num + 31;
            case 5: num = num + 30;
            case 4: num = num + 31;
            case 3:
                if(y%4==0 && y%100!=0 || y%400==0){
                    num = num + 29;
                }else{
                    num = num + 28;
                }
            case 2:
                num = num + 31;
            case 1:
                num = num + d;
                break;
            default:
                num = "case未执行";
        }

        console.log(num);

2.完成梯形打印

在这里插入图片描述

        for(var i=0;i<7;i++){
            for(var j=7;j>i;j--){
                document.write("a");
            }
            for(var k=0;k<i;k++){
                document.write("*");
            }
            for(var k=0;k<i;k++){
                document.write("*");
            }
            document.write("<br>");
        }

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

    var sum = 0;
    for(var i=0;i<64;i++){
        var num = 1;
        for(var j=0;j<i;j++){
            num = num * 2;
        }
        sum = sum + num;
    }
    console.log(sum * 0.00001);

4.计算三个不同数字的大小,按从小到大顺序打印

    function fun(a,b,c){
        var t = 0;
        if(a>b){
            t = a;
            a = b;
            b = t;
        }
        if(a>c){
            t = a;
            a = c;
            c = t;
        }
        if(b>c){
            t = b;
            b = c;
            c = t;
        }
        console.log(a+"<"+b+"<"+c);
    }
    fun(3,2,1);

5.某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:

每位数字都加上5,然后用除以10的余数代替该数字,
再将第一位和第四位交换,第二位和第三位交换,请编写一个函数,传入原文,输出密文
    function fn(x){
        var a = (x%10 + 5)%10;//第四位数字
        var b = (parseInt(x%100/10) + 5)%10;//第三位数
        var c = (parseInt(x%1000/100) + 5)%10;//第二位数字
        var d = (parseInt(x/1000) +5)%10;//第一位数
        
        return a*1000+b*100+c*10+d;
    }
    console.log(fn(3716));

6.编写一个函数,计算任意两个数字之间所能组成的两位数的奇数,数字必须是个位数。比如: 计算0,3之间能组成的奇数个是01、21、03、13、23、31

        function fn(a,b){
            var s1 = "";
            // var n1 = 0;
            for(i=a;i<=b;i++){
                //   n1 = i;
                  s1 = i.toString();                  
                for(j=a;j<=b;j++){
                    // var s2 = "";
                    if(j%2!=0&&j!=i){
                        // s2=j.toString();
                        n2 = s1 + j;   //当有一个数值一个字符时,字符会转成数字
                        console.log(n2);
                    }
                }
            }
        }
        fn(0,3);

7.比较三个不同数字的大小

    function size(a,b,c){
        if(a>b && a>c){
            if(b>c){
                console.log(a,b,c);
            }else{
                console.log(a,c,b);
            }
        }
        if(b>a && b>c){
            a>c
                b,a,c
                b,c,a
        }
        c>a && c>b
            a>b
                c,a,b
                c,b,a
    }
    size(34,52,13)
    size(3,6,1)
    size(57,12,89)

7.计算两个数字之间能组成的奇数,例如( 0,3:01,03,13,21,23,31)

    function fn(a,b){
        // 先判断参数的大小:保持a小,b大
        if(a>b){
            var ls = a;
            a = b;
            b = ls;
        }
        // 两次遍历数字
        for(var i=a;i<=b;i++){
            for(var j=a;j<=b;j++){
                // 开始组合并判断
                if((""+i+j)%2 != 0 && i!=j){
                    // 打印符合条件的值
                    console.log(""+i+j);
                }
            }
        }
    }
    fn(3,0);

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

    function fn(x){
        var a = (x%10 + 5)%10;//第四位数字
        var b = (parseInt(x%100/10) + 5)%10;//第三位数
        var c = (parseInt(x%1000/100) + 5)%10;//第二位数字
        var d = (parseInt(x/1000) +5)%10;//第一位数
        
        return a*1000+b*100+c*10+d;
    }
    console.log(fn(3716));

未完待续…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值