函数及案例

函数

函数有系统函数,也有自定义函数。自定义函数即自己封装所写的,案例中的函数都为自定义函数。
关键字function声明一个函数,如function 函数名() { },大括号中写自己的代码。

函数案例

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

<script>
        function encryption() {
            //求出四位整数数据各个位上的数字
            num = Number(prompt("输入一个四位数:"));
            var gw = num % 10;
            var sw = parseInt(num / 10) % 10;
            var bw = parseInt(num / 100) % 10;
            var qw = parseInt(num / 1000);
            console.log(gw, sw, bw, qw);
            //根据加密规则对每位上的数字进行加密
            var newGw = (gw + 5) % 10;
            var newSw = (sw + 5) % 10;
            var newBw = (bw + 5) % 10;
            var newQw = (qw + 5) % 10;
            console.log(newQw, newBw, newSw, newGw);
            //交换第一位和第四位的数字
            var temp1 = 0;
            temp1 = newGw;
            newGw = newQw;
            newQw = temp1;
            //交换第二位和第三位的数字
            var temp2 = 0;
            temp2 = newSw;
            newSw = newBw;
            newBw = temp2;
            //输出密文
            console.log(newQw, newBw, newSw, newGw);
        }
        //调用encryption()函数
        encryption();
    </script>

结果可在控制台查看,如图:
在这里插入图片描述
注:当你输入1234四位数据时,控制台第一行显示的依次是四位数据的个位数字、十位数字、百位数字、千位数字;第二行显示的是根据第一条加密规则进行加密后的数字;控制台第三行显示的是最终加密后的数字。
2、如果一个数恰好等于它的因数(除自身以外)之和,则称该数为“完全数” perfect number。 比如:6的因数有1、2、3,而1+2+3正好等于6,所以6就是完全数。
封装一个函数,请列出m~n(m<n)的所有完全数。
(1)首先判断一个数是否是完全数

<script>
        //判断一个数是否是完全数
        function perfectNumber(n) {
            //定义一个变量存储因数累加和
            var sum = 0;
            //此处是i<n而不是<=n,根据完全数定义知因数不包含自身
            for (var i = 1; i < n; i++) {
                //找出该数的因数
                if (n % i === 0) {
                    //将该数的因数(除本身外)进行累加
                    sum += i;
                }
            }
            //如果因数累加和等于该数,则该数是完全数,输出
            if (sum === n) {
                console.log(sum);
            }
        }
        //调用函数,传入实参,实参即为你想验证的完全数
        perfectNumber(6);
    </script>

控制台查看结果:
在这里插入图片描述
(2)紧接着求出m~n(m<n)的所有完全数

<script>
        //求m~n(m<n)的所有完全数的函数
        function perfectNumber(m, n) {
            for (var i = m; i <= n; i++) {
                var sum = 0;
                //判断一个数是否是完全数
                for (var j = 1; j < i; j++) {
                    //将该数的因数(除本身外)进行累加
                    if (i % j === 0) {
                        sum += j;
                    }
                }
                //如果因数累加和等于该数,则该数是完全数,输出
                if (sum === i) {
                    console.log(sum);
                }
            }
        }
        //调用perfectNumber()函数,传入实参
        perfectNumber(6, 100);
    </script>

控制台查看结果:
在这里插入图片描述
注:控制台显示的是6~100之间的所有完全数,即6和28.
3、编写函数实现:两个数平方的阶乘相加的和

<script>
        //求阶乘的函数
        function factorial(n) {
            //定义一个变量存储累乘的积
            var res = 1;
            //累乘过程
            for (var i = 1; i <= n; i++) {
                res *= i
            }
            //累乘最终结果即为该数的阶乘
            return res;
        }

        //求平方的函数
        function square(m) {
            var res = m * m;
            return res;
        }

        //求两个数平方的阶乘相加的和的函数
        function total(a, b) {
            //第一个形参a的平方的阶乘
            var num1 = factorial(square(a));
            //第二个形参b的平方的阶乘
            var num2 = factorial(square(b));
            //定义一个变量存储两个数平方的阶乘相加的和
            var sum = num1 + num2;
            //控制台输出最终结果和
            console.log(sum);
        }
        //调用total()函数,传入实参数
        total(2, 3);
    </script>

控制台查看结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值