需求:某系统的数字密码(大于0),采用加密方式进行传输。
先得到每位数,每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数字。
按照以上规则进行解密,比如1983,加密后变为8346,解密后变为1983
public class test7 {
public static void main(String[] args) {
// 1.定义数组记录解密后的结果
int[] arr = {8, 3, 4, 6};
// 2.反转
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 3.求余解密:
// 个位数加5后为:5,6,7,8,9,10,11,12,13,14
// 求余后对应: 5,6,7,8,9, 0 ,1 ,2 ,3 ,4
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 0 && arr[i] < 5) {
arr[i] = arr[i] + 10;
}
}
// 4.加5解密
for (int i = 0; i < arr.length; i++) {
arr[i] -= 5;
}
// 5.拼接
int num = 0;
for (int i = 0; i < arr.length; i++) {
num = num*10+arr[i];
}
// 6.输出
System.out.print(num);
}
}