java编程思维训练
案例 数字加密
需求
需求:某系统的数字密码:比如1983,采用加密方式进行传输,规则如下:先得到每位数。然后每位数都加上5,在对10求余,最后对所有数字求余,得到一串新数。
public class Test6 {
public static void main(String[] args) {
//1.定义一个数组,存入需要加密的数据
System.out.println("请您输入需要加密的数字个数!");
Scanner sc = new Scanner(System.in);
int length = sc.nextInt();
int[] arr = new int[length];
//2.录入需要加密的数字
for (int i = 0; i < arr.length; i++) {
System.out.println("请您输入加密的第" + (i + 1) +"个数字");
int number = sc.nextInt();
arr[i] = number;
}
//3.打印数组内容看一下
printArray(arr);
//4.对数组中的数据进行加密
for (int i = 0; i < arr.length; i++) {
arr[i] = (arr[i] + 5) % 10;
}
//5.对数组中加密的数据进行反转,才是最终加密的结果
for (int i = 0, j = arr.length - 1; i < j; i++,j--) {
//交换两个位置的值
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
printArray(arr);
}
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.println("]");
}
}
总结
- 这里是一个加密程序,如果要解密,在本程序中只要在输入加密后的数字即可,因为加5在加5对10取余,相当于什么也没做;再比如这里不是加5而是加2,那么解密程序就是加8;
- 注意类、对象、方法的合理使用。