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 }
Java例题_48 四位数据加密的更多相关文章
- 06-02 Java值传递、数据加密
值传递: /* 思考题1:看程序写结果,然后分析为什么是这个样子的.并画图讲解.最后总结Java中参数传递规律. Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响.基本类型传递的 ...
- Java工作流引擎关于数据加密流程(MD5数据加密防篡改)
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 工作流系统 流程数据加密 md5 数据保密流程数据防篡改 ...
- java例题_32 取一个整数a从右端开始的4~7位
1 /*32 [程序 32 左移右移] 2 题目:取一个整数 a 从右端开始的 4-7 位. 3 */ 4 5 /*分析 6 * 从右端开始的第四位相当于原数除以1000后结果的最后一位数, 7 * ...
- 【JAVA - 基础】之数据加密和解密
1.Base64工具类(可逆): import java.util.HashMap; import java.util.Map; /** * Base64加解密算法 * </p> * Ba ...
- 【Java例题】8.2 手工编写字符串统计的可视化程序
2. 手工编写字符串统计的可视化程序. 一个Frame窗体容器,布局为null,两个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器Actio ...
- 【Java例题】8.1手工编写加法器的可视化程序
1. 手工编写加法器的可视化程序. 一个Frame窗体容器,布局为null,三个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器ActionLis ...
- 【Java例题】7.6文件题3-文本文件统计
6.文本文件统计.已有一个文本文件文件,请统计数字.大写字母.小写字母.汉字及其它字符出现的次数:然后将这些次数由大到小写到另一个文件之中.说明:将次数为零的过滤掉排序 package chapter ...
- 【Java例题】7.4 文件题1-学生成绩排序
4.学生成绩排序.已有一个学生成绩文件,含有多位学生的成绩:读取这个文件中的每位学生的成绩,然后排序:最后将这些排好序的成绩写到另一个文件中. package chapter7; import jav ...
- 【Java例题】7.5 文件题2-学生成绩统计
5.学生成绩统计.已有一个学生成绩文件,含有多位学生的各三门课的成绩:读取这个文件中的每位学生的三门课成绩,然后计算均分:最后对这些均分按照大于或小于75分的界限,分别写到另两个文件中. packag ...
随机推荐
- iPadOS 14 memoji 无法使用 bug
iPadOS 14 memoji 无法使用 bug iPadOS 14 bug refs 如何在 iPhone 和 iPad Pro 上使用动话表情 https://support.apple.com ...
- scroll calendar & scroll view
scroll calendar & scroll view https://taro-docs.jd.com/taro/docs/components/viewContainer/scroll ...
- windows10 WSL
搭建WSL linux下的home目录,映射windows的目录地址 用户家目录 ➜ ~ pwd /home/ajanuw C:\Users\ajanuw\AppData\Local\Packages ...
- 一文助你了解NGK商城
按照NGK的发展逻辑,将会在2021年上半年上线链商商城,解决传统消费行业真伪难辨的弊端,之后,将会推出小额支付功能,让NGK真正成为结算中的数字资产,目前两者落地性应用已经在开发内测阶段中,期初的部 ...
- Oracle VM VirtualBox安装CentOS7
安装VirtualBox6.0 下载地址:https://www.virtualbox.org/ 新建虚拟机 类型:Linux 版本:Other Linux(64-bit)----如果没有出现64-b ...
- ============================================ 新的开始(前后端分离项目学习Vue+DRF)
- python进阶(9)多线程
什么是线程? 线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位.线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其 ...
- 进位&&大数字符串处理
Have Fun with Numbers Notice that the number 123456789 is a 9-digit number consisting exactly the nu ...
- python中yield的用法详解——最简单,最清晰的解释
转载自https://blog.csdn.net/mieleizhi0522 首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都 ...
- Git使用的常用场景
场景一 小张作为一个开发人员,刚进团队,发现团队是使用git进行代码管理的,现在需要去初始化团队的代码仓库以及新增提交自己修改的一部分代码 1.克隆远程仓库 git clone <ssh> ...