鱼C论坛

 找回密码
 立即注册
查看: 3001|回复: 18

[每日一练] 算法35 ◉‿◉ 电话加密

[复制链接]
发表于 2017-6-8 05:57:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2017-6-8 07:04 编辑


                               
登录/注册后可看大图


按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁





程序分析:
        某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的。
        加密规则如下:每位数字都加上 5, 然后用和除以 10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 [/b]


源代码:
游客,如果您要查看本帖隐藏内容请回复






如果喜欢,请订阅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-10 11:11:49 | 显示全部楼层
python
import functools
def encrypt(num):
    n = [0] * 4
    for i in range(4):
        n[3 - i] = (num % 10 + 5) % 10
        num //= 10
    n.reverse()
    return functools.reduce(lambda x, y: 10 * x +y, n)

点评

我很赞同!: 5.0
我很赞同!: 5
  发表于 2017-6-10 11:37
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-20 05:32:50 | 显示全部楼层
window.onload = function(){
                                var num = prompt('请输入一个四位数作为要加密的数据');
                                var arr = [];
                                arr.push(parseInt(num/1000));
                                arr.push(parseInt(num % 1000 / 100));
                                arr.push(parseInt(num % 100 / 10));
                                arr.push(parseInt(num % 10));
                                
                                document.write('原来的数字是:'+arr+'<br/>');
                                for(var i = 0; i < arr.length; i++){
                                        arr[i] = (arr[i] + 5) % 10;
                                }
                                
                                arr[0] ^= arr[3];
                                arr[3] ^= arr[0];
                                arr[0] ^= arr[3];
                                
                                arr[1] ^= arr[2];
                                arr[2] ^= arr[1];
                                arr[1] ^= arr[2];
                                document.write('加密后的数字是:'+arr+'<br/>');
                                
                        };
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-24 17:19:09 | 显示全部楼层
你可以问问神奇的海螺
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-24 17:55:24 | 显示全部楼层
请问怎么解密
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-16 20:29:07 | 显示全部楼层
..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-16 21:00:21 | 显示全部楼层
var encrypt = function(val1){
        var val = val1.toString();                                //处理每位数+5
        var a=parseInt(val[0])+5,b=parseInt(val[1])+5,c=parseInt(val[2])+5,d=parseInt(val[3])+5;
        var abcd = [a,b,c,d];
        var rar = [],t,y;
        for(var i=0;i<abcd.length;i++){
                if(abcd[i]<10){
                        console.log(abcd[i]);                        //小于10直接跳过
                        continue;
                }
                else{                                                //大于10取余代替
                        var compare_num = abcd[i].toString();
                        console.log(compare_num);
                        var Yu = compare_num[1];
                        rar.push(Yu);
                }
        }
        //1、4位换位
        t = abcd[0];
        abcd[0] = abcd[3];
        abcd[3] = t
        //2/3位换位
        y = abcd[1];
        abcd[1] = abcd[2];
        abcd[2] = y
        console.log(abcd);
}
encrypt(1234);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-16 21:57:33 | 显示全部楼层
求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-19 08:13:07 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-29 16:34:08 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-4 09:54:42 | 显示全部楼层
function returnEncode(num){
   var a = [];
   for(var i = 0;num>1;i++){
        a.unshift((parseInt(num%10)+5)%10);
         num /= 10;
   }
   var temp1 = a[0];
   a[0] = a[3];
   a[3] = temp1;

   var temp2 = a[1];
   a[1] = a[2];
   a[2] = temp2;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-7 14:20:25 | 显示全部楼层
studying javascript...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-23 11:32:29 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-23 11:58:56 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-25 10:12:14 | 显示全部楼层
0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-1 11:56:55 | 显示全部楼层
0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-17 09:24:33 | 显示全部楼层
var a=2345;
    a1 = (parseInt(a/1000)+5)/10;
    a2 = (parseInt(a%1000/100)+5)/10;
    a3 = (parseInt(a%1000%100/10)+5)/10;
    a4= (parseInt(a%1000%100%10)+5)/10;
    a =parseFloat(""+a4+a3+a2+a1);
    alert(a);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 20:14:33 | 显示全部楼层
<script>
        x=prompt("数字:");
        let a=Array(4);
        for (let i of x) {
            i=parseInt(i);
            i=(i+5)%10;
            a.push(i);
        }
        a=a.reverse();
        alert(a.join(""))
    </script>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 08:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表