import java.util.Scanner; public class Test48_1 { /**
* * 【程序48】 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字
* 都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
*
* 现在得到一个加密后的数字,求加密前的数字是多少;
*
* */
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入接受到的数字");
int number = input.nextInt(); int[] numArr = new int[4];
numArr[0] = number / 1000;
numArr[1] = number / 100 % 10;
numArr[2] = number / 10 % 10;
numArr[3] = number % 10; // 将第一位的数字和第四为交换,第二位与第三位交换
// 第一位与第四位交换
int temp = 0;
temp = numArr[0];
numArr[0] = numArr[3];
numArr[3] = temp; // 第二位与第四位交换
temp = numArr[1];
numArr[1] = numArr[2];
numArr[2] = temp; // 现在得到的每一位上面都是除以10之后的余数,将余数转换为本来数字(因为每一位上的数字都是小于10的加上5后
// 大于5小于15,所以每个余数对应的原本的数字只有一个) for (int i = 0; i < numArr.length; i++) {
if (numArr[i] < 5) {
numArr[i] = numArr[i] + 10;
}
}
// 将数字-5
for (int i = 0; i < numArr.length; i++) {
numArr[i] = numArr[i] - 5;
} // 输出结果
System.out.println("加密前的数字为:");
for (int shuChu : numArr) {
System.out.print(shuChu + " ");
}
}
}