某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
在传递过程中需要加密,加密规则如下: 123456
首先将数据倒序, 654321
然后将每位数字加5,再用 对10取余 代替该数字, 109876
最后将第一位和最后一位数字交换。 609871
请任意给定一个小于8位的整数,然后将加密后的结果打印出来。
分析:先将数据转变成数组
在传递过程中需要加密,加密规则如下: 123456
首先将数据倒序, 654321
然后将每位数字加5,再用 对10取余 代替该数字, 109876
最后将第一位和最后一位数字交换。 609871
请任意给定一个小于8位的整数,然后将加密后的结果打印出来。
分析:先将数据转变成数组
知识点:变量;数据类型;运算符;键盘录入;方法;语句;数组
package cn.base;
import java.util.Scanner;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Encryption {
public static void main(String args[]){
/*
把数据的每一位数字获取后存储到数组
int index=0;
arr[index]=num%10;
index++;
arr[index]=num/10%10;
index++;
arr[index]=num/10/10%10;
index++;
……
*/
System.out.println("输入一个数据(小于8位):");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String result = encryption(n);
System.out.print("加密后的结果是:"+result);
}
/*
需求:写一个功能,把数据n加密实现
两个明确:
返回值类型:String 做一个字符串的拼接
参数列表:int n
*/
public static String encryption(int n){
//定义索引
int index=0;
//定义数组
int[] arr = new int[8];
//把数据的每一位数字获取后存储到数组
while(n>0){
arr[index]=n%10;
index++;
n/=10;
}
//每位数字加5,对10取余
for(int i=0;i<index;i++){
arr[i]+=5;
arr[i]%=10;
}
//第一位最后一位数字交换
int temp=arr[0];
arr[0]=arr[index-1];
arr[index-1]=temp;
//定义一个内容为空的字符串
String s = " ";
//将数组元素拼接成一个字符串返回
for(int i=0; i<index; i++)
s += arr[i];
return s;
}
}