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]+" ");
}
}
}