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]+" "); } } }
原文地址:https://blog.csdn.net/Lele0456789/article/details/140607544
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!