某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。
题目要求解析:
A:数据是小于8位的整数
定义一个int类型的数据
int number = 123456;
B:加密规则
a:首先将数据倒序
结果 654321
b:然后将每位数字都加上5,再用和除以10的余数代替该数字
结果 109876
c:最后将第一位和最后一位数字交换
结果 609871
C:把加密后的结果输出在控制台
通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。
不是直接写成这个样子的:
int[] arr = {1,2,3,4,5,6};
抽象方法一:
ge = num%10; //6
shi = num%100/10; //5
bai = num%1000/100; //4
qian = num%10000/1000; //3
wan = num%100000/10000; //2
shiwan = num%100000/100000; //1
我是用第一个抽象做的
抽象方法二:
//把数据中每一位上的数据获取到后存储到数组中
int index = 0;
arr[index] = number%10; //arr[0]=6;
index++;
arr[index] = number/10%10; //arr[1]=5;
index++;
arr[index] = mumber/10/10%10; //arr[2]=4;
while(number > 0) { //number=123456,number=12345,number=1234,number=123,number=12,number=1,number=0
//arr[0]=6,arr[1]=5,arr[2]=4,arr[3]=3,arr[4]=2,arr[5]=1
arr[index] = number%10;
//index=1,index=2,index=3,index=4,index=5,index=6
index++;
//number=12345,number=1234,number=123,number=12,number=1,number=0
number/=10;
}
class EncodeDemo {
public static void main(String[] args)