A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© KaiM 初级黑马   /  2013-6-27 15:43  /  1156 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。
程序是我自己写的,大家也看看
  1. /*
  2. 分析:
  3.         1234567
  4.        
  5. 倒序:7654321
  6. 规则:2109876
  7. 交换:6109872


  8. 123456
  9. 倒序:654321
  10. 规则:109876
  11. 交换:609871

  12. */
  13. class JiaMi
  14. {
  15.     private static int index=0;//定义一个索引,记录数组中的有效位数。
  16.         public static void main(String[] args)
  17.         {
  18.                 int[] arr=new int[8];
  19.                 int num=1234567;
  20.                 sop(desc(num,arr));        //把int类型转化为int[]数组类型,并倒序;
  21.                 sop(add(arr));                //每位加5,并得出除10的余数,并输出到屏幕。                       
  22.                 sop(remove(arr,0,index-1));//交换第一位和第八位数的位置。并输出到屏幕。
  23.                 int sum=arrayToNum(arr,num);//将数组转换成int类型的数字。
  24.                 System.out.println(sum);//输出。
  25.         }
  26.         protected static int[] desc(int num,int[] arr)
  27.         {
  28.                 //将num转换成数组,且倒序,并用arr接收。
  29.                 while(num>0)
  30.                 {
  31.                         arr[index]=num%10;
  32.                         index++;
  33.                         num/=10;
  34.                 }
  35.                 return arr;
  36.         }
  37.         protected static int[] add(int[] arr)
  38.         {
  39.                 //加密规则
  40.                 for(int i=0;i<index;i++)
  41.                 {
  42.                         arr[i]=(arr[i]+5)%10;
  43.                 }
  44.                 return arr;
  45.         }
  46.         protected static void sop(int[] arr)
  47.         {
  48.                 //输出数组的有效位
  49.                 for(int i=0;i<index;i++)
  50.                 {
  51.                         System.out.print(arr[i]+" ");
  52.                 }
  53.                 System.out.println();
  54.         }
  55.         protected static int[] remove(int[] arr,int m,int n)
  56.         {
  57.                 //加密规则,首位和末位交换位置。
  58.                 int temp=0;
  59.                 temp=arr[m];
  60.                 arr[m]=arr[n];
  61.                 arr[n]=temp;
  62.                 return arr;
  63.         }
  64.         protected static int arrayToNum(int[] arr,int num)
  65.         {
  66.                 //将arr转换为int类型的数字,并用num接收。
  67.                 int sum=0;
  68.                 for(int i=0;i<index;i++)
  69.                 {
  70.                         sum+=arr[i]*Math.pow(10,index-1-i);
  71.                        
  72.                        
  73.                 }
  74.                 return num=sum;
  75.         }
  76. }
复制代码

1 个回复

倒序浏览
有点意思哦,我收藏了,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马