黑马程序员技术交流社区
标题:
这题给绕晕了
[打印本页]
作者:
adolph
时间:
2015-3-16 00:13
标题:
这题给绕晕了
某个公司采用公用电话传递数据信息,数据是小于8位的整数,
为了确保安全,在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。
请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。
作者:
wf111sxwf
时间:
2015-3-17 01:21
package com.itheima.test;
public class NumberTest {
/**
* 某个公司采用公用电话传递数据信息,数据是小于8位的整数, 为了确保安全,在传递过程中需要加密,加密规则如下:
* 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
* 然后,把加密后的结果在控制台打印出来。
*
*
*/
public static void main(String[] args) {
// 获取给定的八位数 可以用流对象和Scanner来获取 为了简单 这里写死一个数
int num = 12252555;
encryptionNumber(num);
}
private static void encryptionNumber(int num) {
StringBuilder sb = new StringBuilder();
sb.append(num);
sb = sb.reverse();
int sum = 0;
for (int i = 0; i < sb.length(); i++) {
char c = sb.charAt(i);
int j = Integer.parseInt(String.valueOf(c)) + 5;
sum += j;
}
// 这里由于精确度的问题所以讲数强转成double类型
double sum1 = (double) sum / 10;
System.out.println(sum1);
StringBuilder sb1 = new StringBuilder();
sb1.append(sum1);
System.out.println(sb1);
char first = sb1.charAt(0);
char last = sb1.charAt(sb1.length() - 1);
sb1.setCharAt(0, last);
sb1.setCharAt(sb1.length() - 1, first);
System.out.println(sb1.toString());
}
}
复制代码
大概做了一下 可能方法不是最好的 仅供参考
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2