把上一篇中加密之后的数据进行解密。
加密规则如下:先得到每位数,然后每位数都加上5 , 再对10求余,最后将所有数字反转,得到一串新数。
package test;
import java.util.Scanner;
public class Train7 {
public static void main(String[] args) {
//输入需要还原的数
Scanner sc = new Scanner(System.in);
System.out.println("请输入加密后的数:");
int number = sc.nextInt();
int temp = number;//为了在while循环后还能使用原数据
int count = 0;//位数统计
//求该数有几位数
while (number != 0){
count++;
number = number / 10;
}
//将每位数存放到一个数组中并反转
int[] arr = new int[count];
for (int i = 0; i < arr.length; i++) {
arr[i] = temp % 10;
temp = temp / 10;
}
//还原(每位数都加上5 , 再对10求余)
//最开始每位数字范围0-9,加上5后,范围5-14
//对10求余:5-9不变,10-14减了一个10即0-4,所以代码如下
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 5 && arr[i] <= 9){
arr[i] = arr[i] - 5;
} else if (arr[i] >= 0 && arr[i] <= 4) {
arr[i] = arr[i] + 10 - 5;
}
}
System.out.println("加密前的数为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}