/*
需求:某个公司采用公用电话传递数据信息,数据是小于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("]");
}
}
转载于:https://www.cnblogs.com/znycat/p/4352656.html