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. 牛市下SPC新空投糖果来了

    2021年元旦刚过没几天,比特币就开启了牛市的旅程,比特币涨至三万四千美元,率领众多币种暴涨,一股浓浓的牛市味道来了. 虽然从昨天开始,比特币带领着主流币进行了一波调整,但是只涨不跌的市场是 大家说比 ...

  2. 「NGK每日快讯」2021.1.11日NGK第69期官方快讯!

  3. CURTIS SAVANAH:数字经济=智能基础设施+海量数据+新生业态

    前不久,Datahero Inc公司(公司编号:20141166945)创始人CURTIS SAVANAH在会议上表示,要构建数字经济的愿景,需要智能基础设施.海量数据和全新新生业态. 他在演讲中说到 ...

  4. 联童科技基于incubator-dolphinscheduler从0到1构建大数据调度平台之路

    联童科技是一家智能化母婴童产业平台,从事母婴童行业以及互联网技术多年,拥有丰富的母婴门店运营和系统开发经验,在会员经营和商品经营方面,能够围绕会员需求,深入场景,更贴近合作伙伴和消费者,提供最优服务产 ...

  5. 09、IO流—File类与IO流

    目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三.节 ...

  6. JVM 揭秘:一个 class 文件的前世今生

    本文转载自JVM 揭秘:一个 class 文件的前世今生 导语 引子:我们都知道,要运行一个包含 main 方法的 java 文件,首先要将其编译成 class 文件,然后加载 JVM 中,就可以运行 ...

  7. springCloud中的服务调用feign

    springCloud中的服务调用(要在调用端写) 前提进行了服务注册 流程: 1.在服务模块中添加依赖 <!--服务调用--> <dependency> <groupI ...

  8. ubuntu系统共享桌面的使用和配置

    内容转载自我的博客 目录 1. ubuntu共享桌面 2. 局域网登录远程桌面 2.1 ubuntu使用remmina登录远程桌面 2.2 在windows登录远程桌面 2.3 Android使用RD ...

  9. 用Python来控制Autocad的打印------以Pycomcad为例

    from pycomcad import * #以pycomcad作为接口库为例 import win32com acad=Autocad() 打印最重要的设置都在上面的界面中,下面对这些个界面,用P ...

  10. Codeblocks支持语法着色