• 渡一 5-1、2 条件语句补充,初识引用值,typeof,类型转换


    1.计算2的n次幂,n可输入,n为自然数。

    /*
    n=1 1*2
    n=2 1*2*2
    n=3 1*2*2*2
    */
    var n = parseInt(window.prompt("input"));
    var mul=1;
    
    for(var i=1;i<=n;i++){
        mul *= 2;
    }
    console.log(mul)

    2.计算n的阶乘,n可输入

    /*
        n=1 1*1
        n=2 1*2
        n=3 1*2*3
        n=4 1*2*3*4
        n=5 1*2*3*4*5
    */
    var n = parseInt(window.prompt("input"));
    var count=1;
    
    for(var i=1;i<=n;i++){
        count *= i;
    }
    console.log(count);
    
    //方法二 递归
    function jc(n){
        if(n == 1){
            return 1;
        }
        return n*jc(n-1);
    }

    3.计算斐波纳契数列 1 1 2 3 5 8 输出第n项

    /*
        1 1 2 3 5 8
        1+1 = 2
        1+2 = 3
        2+3 = 5
        3+5 = 8
        5+8 = 13...
    */
    var n = parseInt(window.prompt("input"));
    var first = 1,seconed = 1,third = 0,arr=[1,1];
    if(n>2){
        for(var i=0;i<n-2;i++){
            third = first + seconed;
            first = seconed;
            seconed = third;
            arr.push(third)
        }
    }else{
        arr = [1,1];
    }
    console.log(arr);
    
    //方法二 递归
    function fb(n){
        if(n == 1 || n == 2){
            return 1;
        }
        return fb(n - 1) + fb(n-2);
    }

    4.编写一程序,输入一个三位数的正整数,输出时反向输出。如:输入456,输出654

    //方法一 通过字符串转换
    var n = parseInt(window.prompt("input"));
    var arr =[] ,str="",n1=0;
    
    arr = (n+"").split("");
    str = arr.reverse().join("");
    n = parseInt(str);
    console.log(n);
    
    //方法二 通过计算
    var n = parseInt(window.prompt("input"));
    var unit = 0,decade = 0,hundred = 0,reverseNum = 0;
    unit = n % 10;
    decade = n % 100 - unit;
    hundred = (n - decade - unit) / 100;
    
    reverseNum = unit * 100 + decade + hundred;
    
    console.log(hundred,decade,unit,reverseNum);

    5.输入a,b,c三个数字,打印出最大的。

    var n1 = parseInt(window.prompt("input"));
    var n2 = parseInt(window.prompt("input"));
    var n3 = parseInt(window.prompt("input"));
    
    if(n1>n2){
        if(n1>n3){
            console.log(n1);
        }else{
            console.log(n3);
        }
    }else{
        if(n2>n3){
            console.log(n2);
        }else{
            console.log(n3);
        }
    }

    6.打印出100以内的质数

    var count = 0,arr=[];
    for(var i=1;i<100;i++){
        for(var j=1;j<=i;j++){
            if(i % j == 0){
                count++;
            }
        }
        if(count == 2){
            arr.push(i)
        }
        count = 0;
    }
    console.log(arr);
    
    //只要和开方,10以内找可以被整除的就可以了,减少计算量
    var count = 0,arr=[];
    for(var i=2;i<100;i++){
        for(var j=1;j<=Math.sqrt(i);j++){
            if(i % j == 0){
                count++;
            }
        }
        if(count == 1){
            arr.push(i)
        }
        count = 0;
    }
    console.log(arr);

    知识点

    var date = window.prompt("input");
    switch(date){
        case "monday":
            console.log("working");
            break;  //跳出不往下走了
        case "tuesday":
            console.log("working");
            break;
        case "wednesday":
            console.log("working");
            break;
        case "thursday":
            console.log("working");
            break;
        case "friday":
            console.log("working");
            break;
        case "周六":
            console.log("relaxing");
            break;
        case "周日":
            console.log("relaxing");
            break;
    }
    
    var date = window.prompt("input");
    switch(date){
        case "monday":
        case "tuesday":
        case "wednesday":
        case "thursday":
        case "friday":
            console.log("working");
            break;
        case "周六":
        case "周日":
            console.log("relaxing");
            break;
    }
    for(var i=0;i<100;i++){
        if(i % 7 == 0 || i % 10 == 7){ //7的位数,或是尾数带7
            continue;//跳出本次循环,继续下个循环
        }
        console.log(i);
    }

    typeof 的结果:number string boolean object undefined function

    类型转换:显示转换

    number():想方设法转数字
    false:0 true:1
    null:0
    undefined:NaN
    abc:NaN
    
    parseInt():可以在字符里找数字,只有字符转不了
    "123abc":123
    null/false/true/undefined:NaN
    
    
    var demo = 123;
    demo.toString() //"123"
    undefined/null.toString()//报错,没有这个方法
    
    基底
    parseInt(123,16) //将16进制的123转成10进制的123,16是当前进制
    demo.toString(8) //将10进制的123转成8进制,8是目标进制
    
    eg.
    var num = 10101010;
    var test = parseInt(num,2);
    console.log(test.toString(16));

    隐式转换

    //用number()
    
    isNaN()  
    ++/-- +/- 
    +
    -*/%
    
    &&||!
    
    
    < > <= >= //数字优先,字符是比较Ascall码
    2>3<1 //true 先比较左边2>3:false:0 再看右边0<1:true
    undefined/null>0 : false
    undefined/null<0 : false
    undefined/null=0 : false
    undefined == null : true
    
    boolean()
    == != 
    
    不转换
    === !==
    
    typeof(a) //"undefined" 不会报错
    typeof(typeof(a))  //string
    
    
    typeof(NaN) //string
    var a = "123abc";
    typeof(+a);  //number
    typeof(!!a); //boolean
    typeof(a+"");//string
  • 相关阅读:
    B 合约数
    Weekly Contest 80
    第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛
    2018年长沙理工大学第十三届程序设计竞赛
    通过 DDNS 解决宽带拨号 ip 变化问题
    frp 内网穿透的使用 和原理
    笔记本centos 取消 关闭盖子自动挂起
    centos7 pptp 安装
    linux 命令收集
    centos7 关闭防护墙
  • 原文地址:https://www.cnblogs.com/lisa2544/p/15385823.html
Copyright © 2020-2023  润新知