JavaScript函数的定义和调用

//函数的定义和调用



        // 1, 写一个函数计算1到n的和, 并返回结果打印出来; (n为函数参数)
        function sum(n) {
            var sum = 0;
            for (var i = 1; i <= n; i++) {
                sum += i;
            }
            return sum;
        }
        var a = sum(10);
        console.log(a)

        // 2, 写一个函数计算n的阶乘, 并返回结果打印出来
        function jc(n) {
            var sum = 1;
            for (var i = 1; i <= n; i++) {
                sum *= i;
            }
            return sum;
        }
        console.log(jc(5))
        // 3, 写一个函数计算两个数的最小公倍数; 并返回结果打印出来
        function gbs(max, min) {
            var i = max < min ? min : max;
            while (true) {
                if (!(i % max) && !(i % min)) {
                    return i;
                }
                i++
            }
        }
        console.log(gbs(4, 5))

        function gbs2(m, n) {
            if (n > m) {
                var tmp = m
                m = n
                n = tmp
            }
            for (var i = m; i <= m * n; i += m) {
                if (!(i % m) && !(i % n)) {
                    return i
                }
            }
        }
        console.log(gbs2(2, 7))


        // 4,向一个函数传入不定数量的数值求和。
        function su() {
            var result = 0;
            for (var i = 0; i < arguments.length; i++) {
                result += arguments[i];
            }
            return result;
        }

        console.log(su(4, 1, 2, 4));



        // 1, 写一个函数判断一个年份是不是闰年
        function years(year) {
            if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
                console.log(year + "是闰年")
                return true
            }
            else {
                console.log(year + "不是闰年")
            }
        }

        years(2000);
        // 2, 写一个函数判断一个数是不是素数(又称质数, 除了1和本身以外不再有其他数整除)
        function isSu(Number1) {
            for (i = 2; i < Number1; i++) {
                if (Number1 % i == 0) {
                    return false
                }
            }
            if (!Number1) {
                return true
            }
            if (Number1 < 0) {
                console.log("false")
            }
            return true
        }
        console.log(isSu(9) ? "是素数" : "不是素数")
        // 3, 年月日分别为自定义函数的参数,判断某一个日期是否为合法的日期;
        // 如: 2016年12月33日不是合法的日期
        // 2016年11月13日是合法的日期

        /*    function days(y, m, d) {
               if (y < 1 || m < 1 || m > 12 || d < 1 || d > 31) {
                   console.log("不是合法日期");
                   return false
               }
   
               //二月判断
               if (m == 2) {
                   if (years(y)) {
                       if (d > 29) {
                           console.log("不是合法日期");
                           return false
                       }
                       else {
                           console.log("是合法日期");
                           return true
                       }
                   }
                   else {
                       if (d > 28) {
                           console.log("不是合法日期");
                           return false
                       }
                       else {
                           console.log("是合法日期");
                           return true
                       }
                   }
   
               }
               //判断有30的月份
               switch (m) {
                   case 4: case 6: case 9: case 11:
                       if (d > 30) {
                           console.log("不是合法日期");
                           return false
                       }
                       else {
                           console.log("是合法日期");
                           return true
                       }
               }
   
           }
           days(2024, 7, 28);
    */

  /*
        function checkDay(day, max) {
            if (day > 0 && day <= max) {
                console.log("当前日期合法")
            }
            else {
                console.log("当前日期不合法")
            }
        }
        function fn2(year, month, day) {
            if (month > 0 && month <= 12) {
                if (month == 2) {
                    if (fn(year)) {
                        checkDay(day, 29)
                    } else {
                        checkDay(day, 28)
                    }
                } else {
                    switch (month) {
                        case 4: case 6: case 9: case 11:
                            checkDay(day, 30)
                            break

                        default: checkDay(day, 31)
                    }
                }
            }
        }
        fn2(2025, 7, 28)
 
  */



        function fn0(year) {
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                return true
            }
        }
        function fn1(day, max) {
            if (day > 0 && day <= max) {
                console.log("当前日期合法")
            } else {
                console.log("当前日期不合法")
            }
        }
        function fn2(year, month, day) {
            if (year > 0 && month > 0 && month <= 12) {
                if (month == 2) {
                    if (fn0) {
                        fn1(day, 29)
                    } else {
                        fn1(day, 28)
                    }
                } else {
                    switch (month) {
                        case 4: case 6: case 9: case 11:
                            fn1(day, 30)
                            break
                        default:
                            fn1(day, 31)
                    }
                }
            } else {
                console.log("当前日期不合法")
            }
        }

        fn2(2024, 2, 30)



        // 用递归实现:
        // 1, 计算1 + 2 + 3 +…+100的和

        //sum(n) == sum(n-1) + n
        function sum(n) {
            if (n == 1) {
                return 1;
            }
            else {
                return sum(n - 1) + n;
            }

        }
        console.log(sum(100));
 
        // 2, 输入一个n, 打印n个hello world
        function fn3(n) {
            if (n == 1) {
                return "hello world \n";
            }
            else {
                return fn3(n - 1) + "hello world \n";
            }

        }
        console.log(fn3(10));






        // 1, 写个函数计算所有传入参数相乘的结果(参数数量不定)
        function fn4() {
            var result = 1;
            for (var i = 0; i < arguments.length; i++) {
                result *= arguments[i];
            }
            return result;
        }
        var res = fn4(1, 2, 3, 4, 2, 2)
        console.log(res)


        // 2, 写个函数实现加减乘除运算(两个操作数, 一个操作符)
        function fn5(number1, number2, res) {
            var result = 0;
            switch (res) {
                case '+': result = number1 + number2; break
                case '-': result = number1 - number2; break
                case '*': result = number1 * number2; break
                case '/': result = number1 / number2; break
                case '%': result = number1 % number2; break
                default: console.log("false")
            }
            return result;
        }
        console.log(fn5(2, 5, '*'))
 
        // 3, 写个函数实现n的阶乘
        function factorial(n) {
            if (n == 1) {
                return 1;
            }
            else {
                return factorial(n - 1) * n
            }
        }
        console.log(factorial(3))
 
        // 4, 找出0 - 100之间7的倍数,和包含7的数字
        function fn6() {
            for (var i = 1; i <= 100; i++) {
                if (!(i % 7) || parseInt((i / 10)) == 7 || i % 10 == 7) {
                    console.log(i)
                }
            }
        }
        fn6()
 
        // 5, 不用循环,计算0 - 100以内的数字和
        function fn7(n) {
            if (n == 0) {
                return 0;
            }
            else {
                return fn7(n - 1) + n;
            }
        }
        console.log(fn7(100))
 
 
        // 6, 制作一个简易计算器(计算两个数的加减乘除, 带可手动输入数字和运算符)
        // 7, 兔子繁殖问题,设有一只新生兔子,从第四个月开始他们每个月, 月初都生一只兔子, 新生的兔子从第四个月月初开始又每个月生一只兔子按此规律,并假定兔子没有死亡, n(n <= 20)个月月末共有多少只兔子?
        function fn8(n) {
            if (n == 1 || n == 2 || n == 3) {
                return 1
            } else {
                return fn8(n - 1) + fn8(n - 3)
            }
        }
        console.log(fn8(20))



    </script>
    <!-- // 6, 制作一个简易计算器(计算两个数的加减乘除, 带可手动输入数字和运算符) -->
    <input id="num1" type="text">
    <select name="" id="tmp">
        <option value="+">+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
        <option value="%">%</option>
    </select>
    <input id="num2" type="text">
    <button id="btn" type="button">=</button>
    <input id="res" type="text" disabled>

    <script>
        function computer() {
            var number1 = parseFloat(document.getElementById('num1').value)
            var number2 = parseFloat(document.getElementById('num2').value)
            var tmp = document.getElementById('tmp').value
            var result;
            switch (tmp) {
                case '+':
                    result = number1 + number2;
                    break;
                case '-':
                    result = number1 - number2;
                    break;
                case '*':
                    result = number1 * number2;
                    break;
                case '/':
                    result = number1 / number2;
                    break;
                case '%':
                    result = number1 % number2;
                    break;
            }
            document.getElementById("res").value = result

        }
        document.getElementById("btn").onclick = computer
    </script>
posted @ 2022-07-28 19:23  苏沐~  阅读(140)  评论(0编辑  收藏  举报