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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gjggw123 中级黑马   /  2013-6-12 12:45  /  1627 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请各位帮忙来看下我这个需求应该怎么写代码,我有点思想,但不知道怎么下手.....各位帮忙


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

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


最好多给几种方法;谢谢

点评

提问尽量参照http://bbs.itheima.com/thread-55113-1-1.html  发表于 2013-6-12 19:15

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

4 个回复

倒序浏览
尹桥印 发表于 2013-6-12 13:00
将数据每一位存放于数组内操作吧。

题目不可改的呢
回复 使用道具 举报
其实并不难的,代码如下:
  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.         }
复制代码
回复 使用道具 举报
楼主您好!如果问题得到解决请将题目改成"已解决"
编辑文章-->修改 如果问题没有得到解决请继续发问谢谢您的配合{:soso_e100:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马