数据加密问题 1、问题 某个公司采用公用电话传递数据信息,数据是小于9位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。 请任意给定一个小于9位的整数,然后,把加密后的结果在控制台打印出来。 2、难点:数据长度不固定。 3、要求(以123456为例) (1)数据是小于8位的整数 int number = 123456 (2)加密规则: a: 首先将数据逆序 654321 b: 将每位数字都加上5,再用和除以10的余数代替该数字 109876 c: 最后将第一位和最后一位数字交换 609871 (3)把加密后的结果在控制台打印出来 4、分析过程 (2)赋值数组 可以采用for循环除10取余的方法获取每一位的数字, 传入数组。 代码: int[] arr = new int[8]; int j = 1; for (int i = arr.length-1; i >=0; i--) { arr[i] = (number / j) % 10; j *= 10; } 问题:无法确定键盘录入数据的位数。数组长度设置为最大8, 数组中会有多余的0元素。 解决:采用for循环找到第一个不为0的数字索引, 设置为索引0