import java.util.Scanner;
//5,6,7,8,9,10,11,12,13,14
//数字解密
public class test6 {
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字:");
int number=sc.nextInt();
int temp= number;
//测定该数的位数
int count=0;
while(number!=0){
number=number/10;
count++;
}
//定义数组
int index=0;
int []arr=new int[count];
//将数字存入数组并反转
while(temp!=0){
int ge=temp%10;
temp=temp/10;
arr[index]=ge;
index++;
}
//将数字进行解密
for(int i=0;i<arr.length;i++){
if(arr[i]>=5&&arr[i]<=9){
arr[i]=arr[i];
}else{
arr[i]=arr[i]+10;
}
arr[i]=arr[i]-5;
}
//打印解密后的数字
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
}
}
注:该题的难点在于数字加密进行了求余后解密的操作
加密后的数字范围在5~15
如果数字为5,6,7,8,9加密后的数字不变,则解密时也不变
如果数字为10,11,12,13,14加密后数字变为0,1,2,3,4,解密的操作就是将其加10得到原来的数字