JavaScript-数学逻辑练习1

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body> 
    <script>
        
        //将输入的数值转为数值型
        var all_hours = parseFloat(prompt("请输入总共花费的时长:"))
        //计算天数
        var days = parseInt(all_hours / 24)
        //计算时数
        var hours = (all_hours % 24)
        //输出结果
        document.write("战士们共作战了"+days+"天"+hours+"小时")

    </script>
</body>
</html>

02.小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。1.它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。2. 提示:摄氏度与华氏度      的转换公式为:摄氏度 = 5/9.0*(华氏度-32)保留3位小数    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var temp = parseFloat(prompt("请输入华氏温度:"))  
        //转换为摄氏度
        var F = 5/(9.0*(temp - 32))
        //保留三位小数
        var f = F.toFixed(3)
        //输出结果
        document.write("华氏温度为:" + temp+",摄氏温度为:" + f)
    </script>
</body>
</html>

03.判断一个整数,属于哪个范围:大于0;小于0;等于0

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var num = parseInt(prompt("请输入你要判断的整数:"))

        if(num > 0){
            document.write("这个数大于0")
        }else if(num < 0){
            document.write("这个数小于0")
        }else if(num == 0){
            document.write("这个数等于0")
        }
    </script>
</body>
</html>

04.判断一个整数是偶数还是奇数,并输出判断结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         var num = parseInt(prompt("请输入你要判断的整数:"))

        if (num % 2 == 0) {
            document.write("这个数是偶数!")
        } else (
            document.write("这个数是奇数!")
        )
    </script>
</body>
</html>

05.根据公式(身高-108)*2=体重,可以有10斤左右的浮动,来观察测试者体重是否合适

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         var height = prompt("请输入你的身高:")
        var weight = prompt("请输入你的体重:")
        //计算标准的体重
        var standard = (height - 108) * 2
        //标准体重与输入体重进行比较
        if (weight < standard - 10 || weight > standard + 10) {
            document.write("体重不合适!")
        } else {
            document.write("体重合适!")
        }
    </script>
</body>
</html>

 06.输入分数,判定成绩等级

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         var score = prompt("请输入你的成绩:")
        if (score < 100 && score >= 90) {
            document.write("你的分数等级为A!")
        } else if (score < 90 && score >= 80) {
            document.write("你的分数等级为B!")
        } else if (score < 80 && score >= 70) {
            document.write("你的分数等级为C!")
        } else if (score < 70 && score >= 60) {
            document.write("你的分数等级为D!")
        } else if (score < 60) {
            document.write("你的分数等级为E!")
        }
    </script>
</body>
</html>

 07.判断是星期几?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         // switch条件判断
        switch (day) {
            case 1:
                document.write("今天是星期一")
                break
            case 2:
                document.write("今天是星期二")
                break
            case 3:
                document.write("今天是星期三")
                break
            case 4:
                document.write("今天是星期四")
                break
            case 5:
                document.write("今天是星期五")
                break
            case 6:
                document.write("今天是星期六")
                break
            case 0:
                document.write("今天是星期日")
                break
            default:
                document.write("输入有误!")
        }
    </script>
</body>
</html>

 08.输入月份和年份,显示当月的天数.要求:利用case穿透简化代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //减0 是为了将输入的值转换为数值型Number
        var years = prompt("请输入年份:") -0
        var months = prompt("请输入月份:")-0

        switch (months) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                document.write(years + "年" + months + "月有31天")
                break
            case 2:
                if (years % 400 == 0 || years % 4 == 0 && years % 100 != 0) {
                    document.write(years + "年" + months + "月有29天")
                } else {
                    document.write(years + "年" + months + "月有28天")
                }
                break
            case 4:
            case 6:
            case 9:
            case 11:
                document.write(years + "年" + months + "月有30天")
                break
            default:
                document.write("end")
                break
        }

    </script>
</body>
</html>

 09.计算这是第几年第几个月的第几天

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var year = prompt("请输入年份:") - 0
        var month = prompt("请输入月份:") - 0
        var day = prompt("请输入日数:") - 0
        //定义当月的天数和总的天数
        var month_day = 0
        var all_days = 0
        for (var i = 1; i < month; i++) {
            if (i == 2) {
                //三目运算符
                month_day = (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) ? 29 : 28
            } else if (i == 4 || i == 6 || i == 9 || i == 11) {
                month_day = 30
            } else {
                month_day = 31
            }
            all_days += month_day
        }
        all_days = all_days + day
        //输出结果
        document.write("这是" + year + "年" + month + "月第" + all_days + "天")
    </script>
</body>
</html>

10.求和

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 打印100以内所有偶数的和
        var sum = 0
        for (var i = 0; i < 100; i++) {
            if (i % 2 == 0) {
                sum += i
            }
        }
        document.write("偶数和为:" + sum + "<br>")

        // 求出1-1/2+1/3-1/4…..1/100的和 
        var sum1 = 0
        for (var i = 1; i < 100; i++) {
            if (i % 2 == 0) {
                sum1 = sum1 - (1 / i)
            } else {
                sum1 = sum1 + (1 / i)
            }
        }
        document.write("1-1/2+1/3-1/4…..1/100的和为:" + sum1)
    </script>
</body>
</html>

11.使用 `*` 打印三角形

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         //正三角形
        for (var i = 1; i <= 9; i++) {
            for (j = 1; j <= i; j++) {
                document.write("*")
            }
            document.write("<br>")
        }

        document.write("<br><br>")

        //倒三角形
        for (var i = 1; i <= 9; i++) {
            for (var j = 9; j >= i; j--) {
                document.write("*")
            }
            document.write("<br>")
        }

        document.write("<br><br>")


        // 等腰三角形
        for (var i = 1; i <= 9; i++) {
            for (var j = 9; j >= i; j--) {
                document.write("&nbsp;")
            }
            for (var k = 1; k <= i; k++) {
                document.write("*&nbsp;")
            }
            document.write("<br>")
        }

        document.write("<br><br>")

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

    </script>
</body>
</html>

 12.判断 100 - 300之间的质数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        for (var i = 100; i <= 300; i++) {
            //假设i是质数
            var flag = true
            for (var j = 2; j < i; j++) {
                //判断是不是质数
                if (i % j == 0) {
                    flag = false
                }
            }
            flag ? document.write(i + "是质数<br>") : document.write(i + "不是质数<br>")
        }
    </script>
</body>
</html>

 13.求1+2!+3!+...+20!的阶乘和

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         //sum用于阶乘相乘,赋值不能为0
        var sum = 1
        var all_sum = 0

        for (var i = 1; i <= 20; i++) {
            sum = sum * i
            all_sum += sum
        }
        document.write(all_sum)
    </script>
</body>
</html>

 14.在页面上完成以一个九九乘法表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //外层循环用于换行
        //内层循环用于输出显示内容
        for (var i = 1; i <= 9; i++) {
            for (var j = 1; j <= i; j++) {
                document.write(j + "*" + i + "=" + i * j+"&nbsp;&nbsp;")
            }
            document.write("<br>")
        }
    </script>
</body>
</html>

 15.输出一个3行5列的表格

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        td {
            width: 100px;
            height: 50px;
            background-color: pink;
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    <script>
        //使用字符串拼接的方法
        var str = "<table border=1>"
        for (var i = 1; i <= 3; i++) {
            str += "<tr>"
            for (var j = 1; j <= 5; j++) {
                str += "<td></td>"
            }
            str += "</tr>"
        }
        str += "</table>"
        //输出表格
        document.write(str)

    </script>
</body>
</html>

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //number用于计算芝麻的数量,all_weight用于计算总的重量
        var number = 1
        var all_weight = 0.00001
        for (var i = 2; i <= 64; i++) {
            //每一个格子的芝麻数量是前一个格子芝麻数量的两倍
            number = number * 2
            all_weight += number * 0.00001
        }
        document.write("棋盘上放的所有芝麻的重量为" + all_weight + "kg")

    </script>
</body>
</html>

 17.打印水仙花数  在 100 - 999之间去查找。水仙花数: abc  = a*a*a + b*b*b + c*c*c

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        for (var i = 100; i < 1000; i++) {
            var a = parseInt(i / 100)          //取百位
            var b = parseInt(i % 100 / 10)     //取十位
            var c = i % 10                     //取个位
                  
            if (i == a * a * a + b * b * b + c * c * c) {
                document.write(i + "<br>")
            }
        }
    </script>
</body>
</html>

18.编写一个函数,计算两个数字的和、差、积、商.要求:使用传参的形式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         function fun(a,b){
            document.write("和:"+(a+b)+"<br>"+"差:"+(a-b)+"<br>"+"积:"+(a*b)+"<br>"+"商:"+(a/b)+"<br>")
        }
        fun(3,4)
    </script>
</body>
</html>

 19.编写一个函数,计算三个数字的大小,按从小到大顺序输出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function sort(a, b, c) {
            //将数值型转为数组
            debugger
            var arr = [a, b, c]
            var sum = a + b + c
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - 1 - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        var temp = arr[j]
                        arr[j] = arr[j + 1]
                        arr[j + 1] = temp
                    }
                }
            }
            document.write("三个数之和为:" + sum + "<br>")
            return arr
        }
        var a = parseInt(prompt("请输入a的值:"))
        var b = parseInt(prompt("请输入b的值:"))
        var c = parseInt(prompt("请输入c的值:"))
        //定义一个变量leap来接受函数的输出
        var leap = sort(a, b, c)
        console.log("排序后:" + leap)
    </script>
</body>
</html>

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         function fun(a, b) {
            //计算奇数的个数
            var count = 0
            for (var i = a; i <= b; i++) {
                for (var j = a; j <= b; j++) {
                    //拼接数字
                    var str = parseInt(i.toString() + j.toString())
                    if (str % 2 != 0) {
                        count++
                        document.write(str + "<br>")
                    }
                }
            }
            return count
        }
        var a = parseInt(prompt("请输入a的值:"))
        var b = parseInt(prompt("请输入b的值:"))

        var res = fun(a, b)
        document.write("奇数的个数为:" + res)
    </script>
</body>
</html>

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         function addScent(num) {
            //分别取数字上的千位,百位,十位,个位,然后在加5,除以10
            var a = (parseInt(num / 1000) + 5) % 10
            var b = (parseInt(num % 1000 / 100) + 5) % 10
            var c = (parseInt(num % 100 / 10) + 5) % 10
            var d = (num % 10 + 5) % 10
            //字符串交换位置输出结果
            return '' + d + c + b + a
        }
        var number = prompt("请输入你要加密的数字:") - 0
        var res = addScent(number)
        document.write(res)
    </script>
</body>
</html>

22.编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数求 1+1/3+1/5...+1/n

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function fun(n) {
            var sum = 0
            //赋值式定义函数
            var fun1 = function () {
                for (var i = 1; i <= n; i++) {
                    sum += 1 / (i * 2)
                }
            }
            var fun2 = function () {
                for (var i = 0; i <= n; i++) {
                    sum += 1 / (i * 2 + 1)
                }
            }
            //判断n的奇偶性,并调用相应的函数,因为上面两种函数fun1、fun2为赋值式定义函数,所以调用只能在定义函数之后调用
            if (n % 2 == 0) {
                fun1()
            } else {
                fun2()
            }
            //必须要有return 作为返回,因为下面定义了一个变量res来接受fun的函数
            return sum
        }
        var num = prompt("请输入一个数字:") - 0
        var res = fun(num)
        document.write(res)
    </script>
</body>
</html>

23.使用函数完成任意数字阶乘的计算  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function fun(n) {
            //sum阶乘的初始值为1,
            var sum = 1
            for (var i = 1; i <= n; i++) {
                sum *= i
            }
            return sum
        }
        var n = prompt("请输入你要求的阶乘数:") - 0
        var res = fun(n)
        document.write(res)
    </script>
</body>
</html>

 24.使用递归完成任意数字阶乘的计算  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         function fun(n) {
            //使用递归必须要有终止条件if
            if (n == 1) {
                return 1
            }
            return n * fun(n - 1)
        }
        var num = prompt("请输入你要求的阶乘数:") - 0
        var res = fun(num)
        document.write(res)
    </script>
</body>
</html>

25. 编写一个递归函数dep(), 实现需求:一年薪资是10k,涨幅每年0.5%,那么50年后薪资多少钱?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function dep(n) {
            //基线条件:年数为0,返回当前薪资
            if (n == 0) {
                return 10000
            }
            return dep(n - 1) * (1 + 0.005)
        }

        var num = parseInt(prompt("请输入几年后你要求的薪资:"))
        var res = dep(num)
        document.write(res.toFixed(2))
    </script>
</body>
</html>

26.利用递归求第n位的斐波那契数列。斐波那契数列 : 1 1 2 3 5 8 13 21 34...

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function fun(n) {
            if (n == 1 || n == 2) {
                return 1
            }
            return fun(n - 1) + fun(n - 2)
        }
        var num = prompt("请输入你要求的第几位的斐波那契数列:") - 0
        var res = fun(num)
        document.write("第" + num + "位的斐波那契数列为:" + res)
    </script>
</body>
</html>

练习数学逻辑应当多加思考和实践,习题的解答方式不唯一,如果上述解题方法有误欢迎小伙伴们一同探讨哦~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值