电话加密--小白

学习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;		
              }			
              }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值