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 }

Java例题_48 四位数据加密的更多相关文章

  1. 06-02 Java值传递、数据加密

    值传递: /* 思考题1:看程序写结果,然后分析为什么是这个样子的.并画图讲解.最后总结Java中参数传递规律. Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响.基本类型传递的 ...

  2. Java工作流引擎关于数据加密流程(MD5数据加密防篡改)

    关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单 工作流系统 流程数据加密  md5  数据保密流程数据防篡改 ...

  3. java例题_32 取一个整数a从右端开始的4~7位

    1 /*32 [程序 32 左移右移] 2 题目:取一个整数 a 从右端开始的 4-7 位. 3 */ 4 5 /*分析 6 * 从右端开始的第四位相当于原数除以1000后结果的最后一位数, 7 * ...

  4. 【JAVA - 基础】之数据加密和解密

    1.Base64工具类(可逆): import java.util.HashMap; import java.util.Map; /** * Base64加解密算法 * </p> * Ba ...

  5. 【Java例题】8.2 手工编写字符串统计的可视化程序

      2. 手工编写字符串统计的可视化程序. 一个Frame窗体容器,布局为null,两个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器Actio ...

  6. 【Java例题】8.1手工编写加法器的可视化程序

    1. 手工编写加法器的可视化程序. 一个Frame窗体容器,布局为null,三个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器ActionLis ...

  7. 【Java例题】7.6文件题3-文本文件统计

    6.文本文件统计.已有一个文本文件文件,请统计数字.大写字母.小写字母.汉字及其它字符出现的次数:然后将这些次数由大到小写到另一个文件之中.说明:将次数为零的过滤掉排序 package chapter ...

  8. 【Java例题】7.4 文件题1-学生成绩排序

    4.学生成绩排序.已有一个学生成绩文件,含有多位学生的成绩:读取这个文件中的每位学生的成绩,然后排序:最后将这些排好序的成绩写到另一个文件中. package chapter7; import jav ...

  9. 【Java例题】7.5 文件题2-学生成绩统计

    5.学生成绩统计.已有一个学生成绩文件,含有多位学生的各三门课的成绩:读取这个文件中的每位学生的三门课成绩,然后计算均分:最后对这些均分按照大于或小于75分的界限,分别写到另两个文件中. packag ...

随机推荐

  1. input composition event All In One

    input composition event All In One input event compositionStart & compositionEnd & compositi ...

  2. DB-Engines Ranking : Redis, MongoDB, MySQL

    DB-Engines Ranking http://db-engines.com/en/ranking The DB-Engines Ranking ranks database management ...

  3. Node.js Spider

    Node.js Spider How To Write a Spider using JavaScript, in order to auto download some svg images for ...

  4. VSCode & SQL

    VSCode & SQL MySQL MySQL https://marketplace.visualstudio.com/items?itemName=formulahendry.vscod ...

  5. c++ readIntger writeIntger

    类似CE的read/writeIntger函数(外部) #include <iostream> #include <Windows.h> #include <TlHelp ...

  6. DeFi热下的冷思考 NGK以更深层次的方式参与DeFi建设

    独具慧眼,深度挖掘DeFi潜力项目 作为早期DeFi的探索者和推动者,NGK在此轮热潮席卷市场前就已经开始构建自己的DeFi生态,独具慧眼的NGK上线了Baccarat流动性挖矿项目,完成了首个由平台 ...

  7. BGV暴涨千倍,未来或将超越YFI领跑DeFi全场!

    毫无疑问,YFI在2020年上半年以一己之力掀翻了DeFi市场的热潮.迄今为止,YFI的新鲜资讯从不缺席,最近也是频频登上各大知名媒体热搜.其币价远远超过比特币价格,也让资本市场注意到DeFi市场原来 ...

  8. vue的el-select标签全选以及出现需要有禁用选项

    首先说一下遇到这种问题的解决思路吧,很简单先去https://element.eleme.cn/#/zh-CN 这个官网上找到对应的需求,然后就是拼接数据的问题. 以下是全选的例子: <el-s ...

  9. 安装并运行Nacos

    方式一:源码或者安装包 一.下载源码或者安装包 git clone https://github.com/alibaba/nacos.git 二.安装 cd nacos/ mvn -Prelease- ...

  10. SpringBoot读取资源目录下的文件

    需要读取resources目录下的文件,那么方法如下: 假设在资源目录下的template目录下有一个文件a.txt,获取到文件流的方式 InputStream stream = this.getCl ...