需求:某系统的数字密码(大于0),比如1983,采用加密方式进行传输。先得到每位数,每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数字
思路:键盘录入数字存入数组,遍历数组每一个数字进行相关计算,将反转后的数字存入新数组,再拼接成数字
public class test6 {
public static void main(String[] args) {
int[] arr = getArr();
// 拼接
int num = 0;
for (int i = 0; i < arr.length; i++) {
num = num * 10 + arr[i];
}
System.out.println(num);
}
// 获取最后的数组
public static int[] getArr() {
// 键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字密码:");
int key = sc.nextInt();
// 统计输入数字的长度
int count = 0;
// 临时记录key的值
int key2 = key;
while (key2 != 0) {
key2 = key2 / 10;
count++;
}
int[] keyArr = new int[4];
// 将数据挨个存入数组
for (int i = 0; i < keyArr.length; i++) {
keyArr[i] = key % 10;
key = key / 10;
}
// 加密
for (int i = 0; i < keyArr.length; i++) {
keyArr[i] += 5;
keyArr[i] = keyArr[i] % 10;
}
return keyArr;
}
}