学习java面对对象之前做的这道题-电话加密
小白的学习过程
/* 1、问题描述: 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密。 加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。
package yiqing01;
import java.util.Scanner;
public class eg010 {
public static void main(String[] args) {
// TODO Auto-generated method stubs
Scanner in=new Scanner(System.in);
int number,conter=0,a,b,c,d,e,f,g,A = 0,B,C = 0,num; //其中a,b,c,d,e,f,g在代码中是 个十百千万...上的数字。
number=in.nextInt();
if (number<0||number>10000000)
{
System.out.println("你输入的数据有误,请检查后重新输入!");
}
System.out.println("你输入的数字是"+number);
num=number;
//将输入的数先复制一份,在while循环中会改变
while (number>0) {
number=number/10;
conter++;}
//用循环可以判断出所输入的数是几位数字 System.out.println("你输入的数字是"+conter+"位!"); //接下来用swich进行讨论 :数值位数各种情况下的加密结果
switch (conter) {
case 1:
System.out.println("数据经过倒序结果为"+num);
B=(num+5)%10;
System.out.println("最后经过加密后的结果是"+B);
break;
case 2:
a=num/10;//十位
b=num%10;//个位
A=b*10+a;
System.out.println("数据经过倒序结果为"+A);
B=(b+5)%10*10+(a+5)%10;
//B用来表示倒序后进行+5,再用和除以10的余数的值
{ a=B/10;
b=B%10;
C=b*10+a;
}
//里面是进行首尾交换 C是经过加密后的结果。
System.out.println("最后经过加密后的结果是"+C);
case 3:
a=num/100;
b=num/10%10;
c=num%10;
A=c*100+b*10+a;
System.out.println("数据经过倒序结果为"+A);
B=(c+5)%10*100+(b+5)%10*10+(a+5)%10;
//结果交换
{ a=B/100;
b=B/10%10;
c=B%10;
C=c*100+b*10+a; }
System.out.println("最后经过加密后的结果是"+C);
break;
case 4:
a=num/1000;
b=num/100%10;
c=num/10%10;
d=num%10;
A=d*1000+c*100+b*10+a;
System.out.println("数据经过倒序结果为"+A);
B=(d+5)%10*1000+(c+5)%10*100+
(b+5)%10*10+(a+5)%10;
{ a=B/1000;
b=B/100%10;
c=B/10%10;
d=B%10;
C=d*1000+b*100+c*10+a; }
System.out.println("最后经过加密后的结果是"+C);
break;
case 5:
a=num/10000;
b=num/1000%10;
c=num/100%10;
d=num/10%10;
e=num%10;
A=e*10000+d*1000+c*100+b*10+a;
System.out.println("数据经过倒序结果为"+A);
B=(e+5)%10*10000+ (d+5)%10*1000+(c+5)%10*100+(b+5)%10*10+(a+5)%10;
{ a=B/10000;
b=B/1000%10;
c=B/100%10;
d=B/10%10;
e=B%10;
C=e*10000+b*1000+c*100+d*10+a; }
System.out.println("最后经过加密后的结果是"+C); break;
case 6:
a=num/100000;
b=num/10000%10;
c=num/1000%10;
d=num/100%10;
e=num/10%10;
f=num%10;
A=f*100000+e*10000+d*1000+c*100+b*10+a;
System.out.println("数据经过倒序结果为"+A);
B=(f+5)%10*100000+(e+5)%10*10000+(d+5)%10*1000+(c+5)%10*100+(b+5)%10*10+(a+5)%10; { a=B/100000;
b=B/10000%10;
c=B/1000%10;
d=B/100%10;
e=B/10%10;
f=B%10;
C=f*100000+b*10000+c*1000+d*100+e*10+a; }
System.out.println("最后经过加密后的结果是"+C); break;
case 7:
a=num/1000000;
b=num/100000%10;
c=num/10000%10;
d=num/1000%10;
e=num/100%10;
f=num/10%10;
g=num%10;
A=g*1000000+f*100000+e*10000+d*1000+c*100+b*10+a;
System.out.println("数据经过倒序结果为"+A);
B=(g+5)%10*1000000+(f+5)%10*100000+(e+5)%10*10000+(d+5)%10*1000+(c+5)%10*100+(b+5)%10*10+(a+5)%10;
{ a=B/1000000;
b=B/100000%10;
c=B/10000%10;
d=B/1000%10;
e=B/100%10;
f=B/10%10;
g=B%10;
C=g*1000000+b*100000+c*10000+d*1000+e*100+f*10+a; }
System.out.println("最后经过加密后的结果是"+C);
break;
}
}}