黑马程序员技术交流社区

标题: 呵呵-不会啦,跪求帮助 [打印本页]

作者: gjggw123    时间: 2013-6-12 12:45
标题: 呵呵-不会啦,跪求帮助
请各位帮忙来看下我这个需求应该怎么写代码,我有点思想,但不知道怎么下手.....各位帮忙


某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。
请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。

例如:
int number = 123456;
/*
654321
10 9876
609871  
*/


最好多给几种方法;谢谢

作者: gjggw123    时间: 2013-6-12 13:10
尹桥印 发表于 2013-6-12 13:00
将数据每一位存放于数组内操作吧。

题目不可改的呢
作者: Heart    时间: 2013-6-12 14:49
其实并不难的,代码如下:
  1. public static void jiaMi(int num) {
  2.                 /**
  3.                  * 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:
  4.                  * 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。
  5.                  * 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。
  6.                  */
  7.                 //int num = 123456;
  8.                 String str = String.valueOf(num);        //整数转字符串
  9.                 StringBuffer sb = new StringBuffer(str);
  10.                 str = sb.reverse().toString();        //反转字符串
  11.                 sb.setLength(0);        //清空StringBuffer中内容
  12.                
  13.                 for(int i=0;i<str.length();i++){
  14.                         int a = Integer.parseInt(str.charAt(i)+"")+5;        //每位数字都加上5
  15.                         sb.append(a%10);        //用和除以10的余数代替该数字
  16.                 }
  17.                 char start = sb.charAt(0);
  18.                 int length = sb.length();
  19.                
  20.                 sb.replace(0, 1, sb.charAt(length-1)+"");
  21.                 sb.replace(length-1, length, start+"");
  22.                 System.out.println(sb.toString());
  23.         }
复制代码

作者: 孙百鑫    时间: 2013-6-13 06:18
楼主您好!如果问题得到解决请将题目改成"已解决"
编辑文章-->修改 如果问题没有得到解决请继续发问谢谢您的配合{:soso_e100:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2