Java50道经典习题-程序48 数字加密

题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
分析:例如原始数据是: 6 7 8 9(原始数据)
每个数加上5后为:11 12 13 14
除以10后为: 1 2 3 4
交换位置之后 4 3 2 1(加密后的数据)

 1 public class Prog48{
 2     public static void main(String[] args){
 3         int n = 6789;
 4         int[] a = new int[4];
 5         //取出整数的每一位数并存入数组
 6         for(int i=3;i>=0;i--){
 7             a[i] = n%10;
 8             n /= 10;
 9         }
10         //输出原始数据
11         System.out.println("原始数据为");
12         for(int i=0;i<4;i++)
13             System.out.print(a[i]);
14         System.out.println();//换行
15         //对数据进行加密
16         for(int i=0;i<a.length;i++){
17             a[i] += 5;
18             a[i] %= 10;
19         }
20         int temp1 = a[0];
21         a[0] = a[3];
22         a[3] = temp1;
23         int temp2 = a[1];
24         a[1] = a[2];
25         a[2] = temp2;
26         //输出加密后的数据
27         System.out.println("加密后的数据为");
28         for(int i=0;i<a.length;i++)
29             System.out.print(a[i]);
30     }
31 }
32 /*运行结果
33 原始数据为
34 6789
35 加密后的数据为
36 4321
37 */

猜你喜欢

转载自www.cnblogs.com/parkour1026/p/10796448.html