不二如是 发表于 2017-6-8 05:57:44

算法35 ◉‿◉ 电话加密

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

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

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

不许看答案,否则打屁屁



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

源代码:
**** Hidden Message *****



○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

冬雪雪冬 发表于 2017-6-10 11:11:49

python
import functools
def encrypt(num):
    n = * 4
    for i in range(4):
      n = (num % 10 + 5) % 10
      num //= 10
    n.reverse()
    return functools.reduce(lambda x, y: 10 * x +y, n)

dsa159245 发表于 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 = (arr + 5) % 10;
                                }
                               
                                arr ^= arr;
                                arr ^= arr;
                                arr ^= arr;
                               
                                arr ^= arr;
                                arr ^= arr;
                                arr ^= arr;
                                document.write('加密后的数字是:'+arr+'<br/>');
                               
                        };

a211827754 发表于 2018-9-24 17:19:09

你可以问问神奇的海螺

a211827754 发表于 2018-9-24 17:55:24

请问怎么解密

凌乱大帅比 发表于 2018-10-16 20:29:07

..

凌乱大帅比 发表于 2018-10-16 21:00:21

var encrypt = function(val1){
        var val = val1.toString();                                //处理每位数+5
        var a=parseInt(val)+5,b=parseInt(val)+5,c=parseInt(val)+5,d=parseInt(val)+5;
        var abcd = ;
        var rar = [],t,y;
        for(var i=0;i<abcd.length;i++){
                if(abcd<10){
                        console.log(abcd);                        //小于10直接跳过
                        continue;
                }
                else{                                                //大于10取余代替
                        var compare_num = abcd.toString();
                        console.log(compare_num);
                        var Yu = compare_num;
                        rar.push(Yu);
                }
        }
        //1、4位换位
        t = abcd;
        abcd = abcd;
        abcd = t
        //2/3位换位
        y = abcd;
        abcd = abcd;
        abcd = y
        console.log(abcd);
}
encrypt(1234);

青青草原2.0 发表于 2018-10-16 21:57:33

求解

大西瓜 发表于 2018-10-19 08:13:07

学习

HnYear 发表于 2019-4-29 16:34:08

1

kevin_zdy 发表于 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;
   a = a;
   a = temp1;

   var temp2 = a;
   a = a;
   a = temp2;
}

TCY 发表于 2019-6-7 14:20:25

studying javascript...

gyemperor 发表于 2019-6-23 11:32:29

1

啊刁呀 发表于 2019-11-23 11:58:56

1

水中望月 发表于 2019-12-25 10:12:14

0.0

枫丹白露666 发表于 2020-3-1 11:56:55

0

落寞少年 发表于 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);

jack6666 发表于 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>
页: [1]
查看完整版本: 算法35 ◉‿◉ 电话加密