java题目之数字加密以及如何解密

复制代码
public class Main6 {
    public static void main(String[] args) {
        // 某系统的数字密码(大于0),比如1983,采用加密方式进行传输

        //定义了一个静态数组

         int []arr={1,9,8,3};

        //1.加密
        //先给每位数加上5
        for (int i = 0; i <arr.length ; i++) {
            arr[i]=arr[i]+5;
        }
        //再对10取余
        for (int i = 0; i <arr.length ; i++) {
            arr[i]=arr[i]%10;
        }
        //最后将所有数反转
        for (int i = 0,j= arr.length-1; i <j ; i++,j--) {
            int temp=arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
        }

        //把数组里面的每一个数字进行拼接,变成加密以后的结果
         int number=0;
        for (int i = 0; i <arr.length ; i++) {
            number=number*10+arr[i];
        }
        System.out.println(number);
    }
}

输出结果如下:

复制代码
   public static void main(String[] args) {
        //需求:
        //把整数上的每一位都添加到数组当中
        //反向推导


        //计算数组的长度
        int  number=12345;
        int temp=number;
        //定义一个变量
        int count=0;
       while(number>0) {
           number=number/10;
           count++;
       }
        //定义一个动态数组
        //动态初始化
        int []arr=new int[count];
       //把整数上的每一位都添加到数组当中
        int  index=arr.length-1;
       while(temp!=0){
           //获取temp里面的每一位数组
           int ge=temp%10;
           //再去掉右边的那位数字
           temp=temp/10;
           arr[index]=ge;
           index-- ;
       }
       //验证结果
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+" ");
            
        }
    }
}
复制代码
    public static void main(String[] args) {
        //定义数组记录解密之后的结果
        int[]arr={8,3,4,6};

        for (int i = 0 ,j=arr.length-1; i <j ; i++,j--) {
            int temp=arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
        }
        //由于加密是通过对10取余的方式进行获取的
        //所以在加密的时候就需要判断,0~4的时候之间+10 5~9之间数字不变

        for (int i = 0; i <arr.length ; i++) {
            if(0<arr[i]&& arr[i]<=4 ){
                arr[i]=arr[i]+10;
            }
        }
        //在加密的过程中每位数加上5
        //那么在解密的过程中每位数减5
        for (int i = 0; i < arr.length ; i++) {
            arr[i]=arr[i]-5;
        }

        //反转
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+" ");
        }


    }
}
相关推荐
李慕婉学姐6 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
じ☆冷颜〃6 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
数据大魔方6 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
POLITE36 小时前
Leetcode 23. 合并 K 个升序链表 (Day 12)
算法·leetcode·链表
楚来客6 小时前
AI基础概念之八:Transformer算法通俗解析
人工智能·算法·transformer
Echo_NGC22377 小时前
【神经视频编解码NVC】传统神经视频编解码完全指南:从零读懂 AI 视频压缩的基石
人工智能·深度学习·算法·机器学习·视频编解码
会员果汁7 小时前
leetcode-动态规划-买卖股票
算法·leetcode·动态规划
奋进的芋圆7 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
橘颂TA7 小时前
【剑斩OFFER】算法的暴力美学——二进制求和
算法·leetcode·哈希算法·散列表·结构与算法
sxlishaobin7 小时前
设计模式之桥接模式
java·设计模式·桥接模式