Java语言基础1--综合案例(数字加密问题):
来源:互联网 发布:mac os 10.9.5 iso 编辑:程序博客网 时间:2024/05/21 04:26
问题描述:某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密。加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。
最终代码如下(详细的需求分析、编码实现过程)
/* 1、问题描述: 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密。 加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。 2、获取需求: 实现将用户输入的小于8位正整数字,按照给定的规则加密,并打印出来 3、分析: (1)获取给定的不小于8位的整数 (2)分析主要规定的规则: a、原始数据倒序 b、将每一个数字加上5 c、和与10取余代替当前数字 d、首尾数字交换 (3)将所得加密后的数字打印 4、实现: 数据结构:采用一维数组,长度为8 规则实现: a、原始数据倒序 拆数:获取各个位置上的数字 拆数过程中从个位数字开始获取,存储从数组的0索引开始, 已经实现了数组的逆置 逆置数组(reverse函数) b、将每一个数字加上5 一维数组的遍历:for循环 num += 5; c、和与10取余代替当前数字 num %= 10; d、首尾数字交换 实现正整数交换的四种方式 (1)中间变量temp (2)不借助中间变量(+) (3)使用按位异或的特点: 某一数据和同一数据异或两次,数据本身不变 (4)一句话实现: b = (a+b) -(a=b); 可读性很差且代码不规范 5、编码*/import java.util.Scanner;public class JiaMiDemo{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入原始数据:"); // 1、获取原始数据 int data = sc.nextInt();/* // 2、定义数据结构:一维数组 int[] dataArray = new int[8]; int count = 0; // 记录索引位置(数组的实际长度) // 3、原始数据倒序 // 拆数:获取各个位置上的数字 // 拆数过程中从个位数字开始获取,存储从数组的0索引开始, // 已经实现了数组的逆置 // 逆置数组(reverse函数) while(data!=0) { dataArray[count] = data % 10; count ++; data /= 10; }*/ // 拆数函数实现2、3 int[] dataArray = chaiShu(data); // 获取数组的实际长度 int count = dataArray[8]; /* 4、将每一个数字加上5 一维数组的遍历:for循环 5、和与10取余代替当前数字 */ for(int i=0;i<count;i++) { dataArray[i] += 5; dataArray[i] %= 10; } // 6、首尾数字交换 int temp = dataArray[0]; dataArray[0] = dataArray[count-1]; dataArray[count-1] = temp; // 7、实现加密数据的输出 String jiami=""; for (int i=0;i<count;i++) { jiami += dataArray[i]; } System.out.println("加密后的数据是:\n"+ jiami); } /* 拆数函数:获取各个位置上的数字 拆数过程中从个位数字开始获取,存储从数组的0索引开始, 已经实现了数组的逆置 */ public static int[] chaiShu(int num) { int[] arr = new int[9]; int index = 0; while(num!=0) { arr[index++]=num%10; num/=10; } // 最后一位存储数组的实际长度 arr[8] = index; return arr; }}
0 0
- Java语言基础1--综合案例(数字加密问题):
- Java数组基础综合案例
- 第三章:Java语言基础II 第9、10节 综合案例 算命程序
- Android基础综合案例(一)
- Android基础综合案例(三)
- Android基础综合案例(五)
- Android基础综合案例(六)
- JAVA语言基础案例总结
- UI基础控件综合案例之Java代码编写
- Android基础综合案例(二)
- Android基础综合案例(四)
- Android基础综合案例(九)Android UI设计2
- java语言基础-计算成绩等级案例
- java语言基础 问题(数据类型问题)
- Java基础第九天案例--登陆注册案例(1)
- 一个比较综合的Java语言基础试题
- 一个比较综合的Java语言基础试题
- 一个比较综合的Java语言基础试题
- mongodb备份数据库
- Andriod 手机定位 解决location为null的问题
- java学习&复习 2015/07/15
- 记忆中的书店
- Spark与Scala学习
- Java语言基础1--综合案例(数字加密问题):
- ffmpeg的tutorial中文版学习笔记(三)
- hadoop的namenode无法启动的解决办法
- Tomcat调优总结
- http权威指南(二)——url
- 推荐python的ORM框架peewee(转)
- Http的GET和POST请求
- SQLite的使用详解
- css text-overflow