Java例题_48 四位数据加密

 1 /*48 【程序 48 加密】 
 2 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,
 3 加密 规则如下:
 4 每位数字都加上 5,然后用和除以 10 的余数代替该数字,再将第一位和第四位交 换,第二位和第三位交换。
 5 
 6 ps:这是个什么骚操作。。。。一四交换,二三交换,不就是倒序么。。。。
 7 */
 8 
 9 /*分析
10  * 1、从键盘得到一个4位数
11  * 2、将这个4位数送入加密函数中加密
12  * 3、加密后传入主函数,然后输出到屏幕
13  * ===
14  * 加密函数:
15  * 1、将4位数分离后存入数组中
16  * 2、按照要求将每个数字实施加密处理
17  * 3、按要求调换数字的位置
18  * 4、将数组中的4个数字取出转换为一个整数,返回这个值
19  * */
20 
21 package homework;
22 
23 import java.util.Scanner;
24 
25 public class _48 {
26 
27     public static void main(String[] args) {
28         //提示输入一个4位整数
29         System.out.println("请输入一个四位数整数:");
30         // 从键盘得到一个4位数
31         Scanner sc=new Scanner(System.in);   //new一个监视器,检测系统输入
32         int n=sc.nextInt();    //从键盘得到输入的数
33         //验证输入是否合法
34         while ((n<1000)&(n>9999)) {          //验证输入的n是否为一个四位数:
35             System.out.println("输入错误,请重新输入:");   //提示输入错误
36             n=sc.nextInt();                     //重新获得新的n值
37         }
38         //输出加密后的结果;
39         System.out.println("加密后的四位数为:"+Encryption(n));
40         
41 
42     }
43     
44     //加密函数
45     private static int Encryption(int n) {
46         //声明一个数组a[]用于存放n的每个数字
47         int[] a=new int[4];
48         //将n拆分后存入数组a中
49         for (int i = 3; i >=0; i--) {   //因为确定是4位数,直接从最后一个开始存,避免再来一次倒序
50             a[i]=(n%10+5)%10;       //得到每位数字后,+5,再%10,得到加密后的值
51             n=n/10;          
52         }
53         //交换一、四位,二、三位
54 //        int t;    //临时存放数据
55 //        t=a[0];
56 //        a[0]=a[3];
57 //        a[3]=a[0];
58         Swop(a, 0, 3);   //交换一、四位
59         Swop(a, 1, 2);   //交换二、三位 
60         //声明一个x用于存放加密后的四位数
61         int x=0;
62         //转换为一个整型四位数
63         for (int i = 0; i < a.length; i++) { 
64 //            System.out.println(a[i]);   //测试
65             x=x*10+a[i];
66         }
67         return x;
68     }
69     
70     //交换位置
71     private static void Swop(int[] a,int i,int j) {
72         int t=a[i];   
73         a[i]=a[j];
74         a[j]=t;
75     }
76 
77 }

 

posted @ 2020-02-18 16:22  浪漫主义程序员  阅读(848)  评论(0编辑  收藏  举报