//<span style="white-space:pre"> </span>有兴趣的朋友可以自己做做,对JAVA入门提高很快的
/*
思考题:
某公司对数字进行加密与解密,原数字是一个8位的整数
加密过程:
数据倒序,然后将每位数字+5,再用除以10的余数代替该数字
最后将第一位和最后一位数字进行交换
解密过程相反
有兴趣的可以自己写一下,我觉得这个对于JAVA入门太有帮助了
*/
import java.util.Scanner;
class JiaMi{
/*
程序思路:
加密与解密过程看似不同,实际具有很多相同之处,也就是代码重复
必须都需要把8位数打断为数组之后再处理,都需要第一位与最后一位交换顺序等
因此将每一步写为方法再调用可以增强代码使用的效率
以下详解一下解密每一步的过程:
1. 数据倒序:
字符串确实可以倒序,不过需要使用StringBuffer才行,
String类型没有reverse这个方法,不过我还是写了该如何处理,
详见我写的子程序。
一般来说首先将8位数打断为8个数,存入数组,打断方法为,
eg:123,获取第一位需要:int i=321/100; i的值即为3
接下来再进行数组倒序;
2. 每位数字+5,再用除10的余数代替该数字
首先数字需要存于数组中,遍历数组进行这个操作;
需要注意的是,加密好说,解密需要判断一下
若数字小于5,也就是0,1,2,3,4,那么说明取余之前他们分别为10,11,12,13,14
反之同理
3. 第一位和最后一位交换
这个太容易了,学程序的都知道N多种方法交换2个数据
比如引入第三个变量啊,或者求和啊,按位反啊等等
主程序main的运行顺序应该是:
1. 了解用户想加密还是想解密
2. 获得用户想加密或者解密的数字
3. 进行加密或者解密
4. 并输出结果
有了思路,就可以开始做了!
*/
public static void main(String[] args){
// 让用