/* 需求:某个公司采用公用电话传递数据信息,数据是小于8位的整数, 为了确保安全,在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。 思路: 1,这公司要传递数,数据小于8位的整数。可以用数组定义 2,传递过程中数据加密,涉及到运算 3,数据倒序,写一个倒序方法, 4,将每位数字都加上5,再用和除以10的余数代替该数字 5,将第一位和最后一位数字交换。 6,请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。遍历 步骤 1,定义一个与数字位数相同的整数数组 2,操作数组中的元素 3,数据倒序,写一个倒序方法start=0 end=arr.length arr[start]=arr[end] end--;start++; 如果end=start就结束;用if和break; 4,将每位数字都加上5,再用和除以10的余数代替该数字arr[x] = (arr[x]+5)%10 5,将第一位和最后一位数字交换。定义一个交换元素的方法 start=0 end=arr.length arr[start]=arr[end] 这个方法单独在一个函数中,不和上面的3重复 6,请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。遍历 定义一个遍历方法,把改变的数组遍历出来 注释,本想用多个函数来着,后来考虑多个函数可读性太差,直接一个函数搞定。。。 */ class Jiami { public static void main(String[] args) { //1,定义一个与数字位数相同的整数数组 //假设给定数字为17645412 int[] arr = {1,7,6,4,5,4,1,2}; //操作数组 caoZuo(arr); } /* //2,操作数组中的元素 3,数据倒序,写一个倒序方法该方法仅仅只是操作数组, 不需要返回值 参数类型为数组类型 start=0 end=arr.length arr[start]=arr[end] end--;start++; 如果end=start就结束;用if和break; 编程时想到,可以直接用for循环来结束。。。 */ static void caoZuo(int[] arr) { //倒序 for (int i=0; i<arr.length/2; i++) { int temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; } //4,将每位数字都加上5,再用和除以10的余数代替该数字 //arr[x] = (arr[x]+5)%10 for (int x=0, length=arr.length; x<length; x++) { arr[x] = (arr[x]+5)%10; } //5,将第一位和最后一位数字交换。定义一个交换元素的方法 //sta=0 last=arr.length arr[start]=arr[end] 这个方法单独在一个函数中,不和上面的3重复 int sta = 0; int last=arr.length-1; int temp = arr[sta]; arr[sta] = arr[last]; arr[last] = temp; //6,请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。遍历 //定义一个遍历方法,把改变的数组遍历出来 printArr(arr); } //遍历 static void printArr(int[] arr) { System.out.print("["); for (int x=0,length=arr.length; x<length; x++) { System.out.print(arr[x]); } System.out.print("]"); } }