public class Main6 {public static void main(String[] args) {// 某系统的数字密码(大于0),比如1983,采用加密方式进行传输//定义了一个静态数组int []arr={1,9,8,3};//1.加密//先给每位数加上5for (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//那么在解密的过程中每位数减5for (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]+" ");}} }