- 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());
- }
- }
复制代码 大概做了一下 可能方法不是最好的 仅供参考 |