题目:
某个公司采用公用电话传递数据,
数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,
然后用和除以10的余数代替该数字,
再将第一位和第四位交换,第二位和第三位交换。
import java.util.*;
public class Test{
public void jie(int num){
int a,b,c,d;
a=num/1000;
b=num/100-a*10;
c=num/10-a*100-b*10;
d=num%10;
int[] s = {a,b,c,d};
int temp=0;
temp=s[0];
s[0]=s[3];
s[3]=temp;
temp=s[1];
s[1]=s[2];
s[2]=temp;
for(int i=0;i<4;i++){
if(s[i]<4)
s[i]=s[i]+10-5;
else
s[i]=s[i]-5;
}
System.out.print("\t\t\t解密过后的数字为: ");
for(int i : s)
System.out.print(i);
}
public void add(int num){
int a,b,c,d;
a=num/1000;
b=num/100-a*10;
c=num/10-a*100-b*10;
d=num%10;
int[] s = {a,b,c,d};
for(int i=0;i<4;i++){
s[i]=(s[i]+5)%10;
}
int temp=0;
temp=s[0];
s[0]=s[3];
s[3]=temp;
temp=s[1];
s[1]=s[2];
s[2]=temp;
System.out.print("\t\t\t加密过后的数字为: ");
for(int i : s)
System.out.print(i);
}
public static void main(String args[]){
System.out.println("\t\t\tXX公司加密解密程序");
System.out.println("\t\t\t加密请扣1");
System.out.println("\t\t\t解密请扣0");
Scanner scan = new Scanner(System.in);
int n=0;
int num=0;
do{
System.out.print("\t\t\t请扣: ");
n = scan.nextInt();
}while(n!=1&&n!=0);
do{
System.out.print("\t\t\t输入要操作的数字: ");
num = scan.nextInt();
}while(String.valueOf(num).length()!=4);
if(n==1)
new Test().add(num);
else
new Test().jie(num);
}
}
/*---运行结果---
C:\>java Test
XX公司加密解密程序
加密请扣1
解密请扣0
请扣: 1
输入要操作的数字: 2013
加密过后的数字为: 8657
C:\>java Test
XX公司加密解密程序
加密请扣1
解密请扣0
请扣: 0
输入要操作的数字: 8657
解密过后的数字为: 2013
*/
来源:https://www.cnblogs.com/laoquans/archive/2013/03/16/2963357.html