某个公司采用公用电话传递数据,数据是四位的整数, 在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, *再将第一位和第四位交换,第二位和第三位交换。
题目:某个公司采用公用电话传递数据,数据是四位的整数, 在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字,
再将第一位和第四位交换,第二位和第三位交换。
思路: 随机产生一个四位数 使用方法来计算加密,并返回加密后的数字
public class 第四十八题数据加密 {
public static void main(String[] args) {
/*
* 思路: 随机产生一个四位数 使用方法来计算加密,并返回加密后的数字
*/
int n = (int) (Math.random() * 9999 + 1);
System.out.println("数字" + n + "加密后的数字为:" + encode(n));
}
// 数字加密
public static int encode(int n) {
int result = 0;
int temp = 0;
int ge = n % 10;// 个位
int shi = n / 10 % 10; // 十位
int bai = n / 100 % 10; // 百位
int qian = n / 1000; // 千位
// 进行取模运算
ge = (ge + 5) % 10;
shi = (shi + 5) % 10;
bai = (bai + 5) % 10;
qian = (qian + 5) % 10;
// 交换个位和千位
temp = ge;
ge = qian;
qian = temp;
// 千幻十位和百位
temp = bai;
bai = shi;
shi = temp;
result = 1000 * qian + 100 * bai + 10 * shi + ge;
return result;
}
}