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. ES6 & import * & import default & import JSON

    ES6 & import * & import default & import JSON import json & default value bug api.js ...

  2. flutter & dart & vs code & bug

    flutter & dart & vs code & bug Waiting for another flutter command to release the startu ...

  3. taro & Error: spawn taro ENOENT

    taro & Error: spawn taro ENOENT https://stackoverflow.com/questions/27688804/how-do-i-debug-erro ...

  4. nasm astrchr函数 x86

    xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export as ...

  5. c++ x86_x64挂钩函数 传递寄存器表

    https://github.com/januwA/GameCheat #include "pch.h" #include <iostream> #include &l ...

  6. Flutetr flutter_downloader 1.3.1

    flutter_downloader 此库更新极慢,所以问题及多,可以看文档 安装 dependencies: flutter_downloader: ^1.3.1 配置 Java: // MyApp ...

  7. 苏黎世财经对话区块链专家,NGK如何利用时间价值实现自身的垂直扩张?

    近日,苏黎世财经日报联合法兰西金融等多家知名媒体,专访了NGK. 苏黎世财经日报专栏记者玛科尔德表示,随着NGK DeFi的明星代币BGV登上去中心化金融的舞台,它千倍的收益率让生态投资者趋之若鹜. ...

  8. 23_MySQL单行和多行子查询语法规则(重点)

    本节涉及SQL语句: -- 如何用子查询查找FORD和MARTIN两个人的同事? 1 WHERE子查询 SELECT ename FROM t_emp WHERE deptno IN (SELECT ...

  9. Java 动态调试技术原理及实践

    本文转载自Java 动态调试技术原理及实践 导语 断点调试是我们最常使用的调试手段,它可以获取到方法执行过程中的变量信息,并可以观察到方法的执行路径.但断点调试会在断点位置停顿,使得整个应用停止响应. ...

  10. Coposition 详解

    LifeCycle Hooks 在新版的生命周期函数,可以按需导入到组件中,且只能在setup()函数中使用. import { onMounted, onUnmounted } from 'vue' ...