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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sanjiadiankeli 中级黑马   /  2014-6-4 00:10  /  1785 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class JiaMi1 {
  2.         public static void main(String[] args){
  3.                 int[] arr = {1,2,3,4,5,6,7};
  4.                 int[] arr2= new int[arr.length-1];
  5.                
  6.                 for (int i = arr.length-1; i >= 0; i--) {
  7.                         int j = 0;
  8.                         arr2[j] = (arr[i]+5)%10;
  9.                         System.out.print(arr2[j]);
  10.                         j++;
  11.                 }
  12.                
  13.         }
  14. }
复制代码
这是题目;    某个公司采用公用电话传递数据信息,数据是小于8位的整数,
        为了确保安全,在传递过程中需要加密,加密规则如下:
        首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
        最后将第一位和最后一位数字交换。
        请任意给定一个小于8位的整数,
        然后,把加密后的结果在控制台打印出来。
我现在输出的结果210976现在需要把2和6换位置,我用第三方变量不行,换不了,请大神给解决下

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

5 个回复

倒序浏览
不需要另外设一个数组,用原来的数组就可以完成,先倒序,Arrays.reverse(arr),然后在循环里加个条件语句,if
回复 使用道具 举报 1 0
循环for(int x=0;x<arr.length;x++)里面加个if(x==(arr.length-1))再换第一个和最后一个
回复 使用道具 举报 1 0
//不知到是不是这个意思,把数据倒转,头和尾交换,不断的交换,而且要加密,不是原有的数据,阅读时要解密?
                int arr[]={4,5,6,4,7,8};
               
                for(int stat=0,end=arr.length-1;stat<end;stat++,end--){
                       
                        int temp=0;
                        //对每个数据加密
                        temp=arr[stat]+5%10;
                        //对每个数据加密
                        arr[stat]=arr[end]+5%10;
                        arr[end]=temp;
                }

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 1 0
本帖最后由 felixzr 于 2014-6-4 02:06 编辑

可以定义一个POS位
class  Demo
{
      public static void main(String[] args)
        {
                int a = 743456;
                int[] arr = new int[8];
                int pos = 0;
                while(a>0){
                        arr[pos] = a%10;
                        //a = a/10;
                        a /= 10;
                        pos++;
                }
               
                for(int i=0;i<pos;i++){
                        System.out.print(arr+" ");
                        arr  = (arr+5)%10;
                }
                System.out.println();
               
                int temp;
                temp = arr[0];
                arr[0] = arr[pos-1];
                arr[pos-1] = temp;
               
                for(int j=0;j<pos;j++)
                {
                        System.out.print(arr[j]+" ");
                }
        }
}
回复 使用道具 举报
不需要解密  只加密
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马