题目:
某个公司采用公用电话传递数据,
数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上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