前言
【编程思维案例6】数字加密
- 需求:
- 某系统的数字密码:如1983,采用加密方式进行传输
- 规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数

- 分析:
- 将每位数据存入到数组中,遍历数组每位数据按照规则进行更改,把更改后的数据存入到数组中
- 将数组的前后元素进行交换,数组中的最终元素就是加密后的结果
代码
public static int[] stringToIntArray(String str) {
String[] strArr = str.split("\\s+");
int[] arr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
arr[i] = Integer.parseInt(strArr[i]);
}
return arr;
}
public static void encrypt(int[] data) {
for (int i = 0; i < data.length; i++) {
data[i] = (data[i] + 5) % 10;
}
for (int i = 0, j = data.length - 1; i < j; i++, j--) {
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要加密的数字(每个数字之间用空格分隔):");
String dataStr = sc.nextLine();
int[] data = stringToIntArray(dataStr);
encrypt(data);
System.out.println("加密后的数字为:");
for (int datum : data) {
System.out.print(datum + " ");
}
}
测试
请输入要加密的数字(每个数字之间用空格分隔):
1 9 8 3
加密后的数字为:
8 3 4 6