js某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,请编写一个函数,传入原文,输出密文

 加密规则如下:

        每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换

        // 定义函数encryptData对数据进行加密  x为形参
        function encryptData(x){
            // 得到x中每个位的数并对它进行计算
            let qian = parseInt((x / 1000) + 5 % 10);
            let bai = parseInt((x % 1000 / 100)+ 5 % 10);
            let shi = parseInt((x % 1000 % 100 / 10)+ 5 % 10);
            let ge = (x % 10)+ 5 % 10;
            // 将第一位和第四位进行交换
            let temp1 = qian;
            qian = ge;
            ge = temp1;
            // 将第二位和第三位进行交换
            let temp2 = bai;
            bai = shi;
            shi = temp2;
            //定义cipher变量并赋值根据加密规则得到的数
            let cipher = qian*1000+bai*100+shi*10+ge*1;
            // 将cipher返回
            return cipher;
        }
        // 定义变量text并赋值
        let text = +prompt(`请输入要传递的数据:`);
        // 输出加密后的数据
        console.log(`您的密文为:${encryptData(text)}`);

 运行结果如下图:输入传递的数据4位数1234  输出加密后的数据为9876

 

 

第二种方式:用字符串的形式传递:详细代码如下图  

 function encryptData(str){
    let sum = '';
    for(let i = 0; i < 4; i++){
        let site = str[i];
        let data = (site * 1 + 5) % 10;
        sum += data;
    }
    return `${sum[3]}${sum[2]}${sum[1]}${sum[0]}`;
}
let text = prompt(`请输入要传递的数据:`);
console.log(`您的密文为:${encryptData(text)}`);

在之后的学习中,遇到类似电话号码的这种数据,我们需要注意的是:通常情况下都是用字符串的形式访问,不容易出错,如果用方法一的话会存在不小心出现错误的问题。

还需注意的是我们在访问字符串中某个字符时可以通过数组名[索引]的方式来访问。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值