某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,在将第一位和第四位交换,将第二位和第三位交换,请写出改加密程序。
观察:四位数字,每位数字基本独立,可以用数组进行表示,
步骤: 1,输入四位数字,将四位数字每一位分到长度为4数组里面
2,将数组里面每一位元素加上5
3,将每位再除以10,取余数存到数组里面
4,进行数组交换,利用索引来进行交换
有关求各个位数的的数值,先降位,然后再取其位数。比如:求十位的数值,则先降十位降成各位,然后再利用%10来求得其位数。
代码:
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一步:
System.out.println("输入一个四位数字:");
Scanner scanner = new Scanner(System.in);
int in = scanner.nextInt();
int[] ar = new int[4];//存储每一位的数组
ar[3]=in/1000%10;//取每一位的余数
ar[2]=in/100%10;
ar[1]=in/10%10;
ar[0]=in%10;
for(int i=0;i<4;i++) {
ar[i]=ar[i]+5;//加5
ar[i]=ar[i]%10;//除以十
}
int index;
index = ar[0];
ar[0]=ar[3];
ar[3]=index;//第一位与第四位交换
index = ar[1];
ar[0]=ar[2];
ar[2]=index;//第一位与第四位交换
System.out.println("加密数字为:");
for(int i=0;i<4;i++)
System.out.print(ar[i]);
}