数组排列计算

/*
数组习题:
数组加密=某个公司用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密。
加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字。
最后将第一位和最后一位数字交换。
请给定一个小于8位的整数,然后将加密后的结果在控制台打印出来。
举例:
643689
一大堆计算:198134
498131
思路:
1.小于等于一个八位数
2.将数字拆散,放到一个int[]数组当中,通过对数组的操作,对所有的数组元素进行倒序,得到倒序后的数据
3.使用计算符对数组中每一个元素进行计算,替代之前的数值。
4.将首尾交换。
5.打印输出。

*/
import java.util.Scanner;//导入Scanner包
class CipherCode
{
public static void main(String[] args) 
{
//定义输入数字
Scanner input = new Scanner(System.in);//系统输入功能
System.out.print("请输入一个数字:");
int number = input.nextInt();
myMethod(number);//调用myMethod方法
}


//定义主要功能方法
public static void myMethod(int number)
{
//计算输入数字的位数
//定义变量length,记录数字的位数
int length = String.valueOf(number).length();//length为该数字的位数,即数组的维度
System.out.print("该输入数字的位数为:" + length +"\n");
//建立一个维度为length的int[] arr
int[] arr = new int[length];
int y = 1;
for (int x = length-1 ; x >= 0 ; x-- )
{
arr[x] = number/y%10;
y *= 10;//y每循环一次就乘以10
}
//正序遍历新建的数组
System.out.print("正序遍历数组为:");
ergodic(arr);
//调用倒序方法,将数组倒序排列
System.out.print("倒序遍历数组为:");
reverseArray(arr);
//调用+5方法
plusFive(arr);
//调用%10方法
remainder(arr);
//调用换位方法
swap(arr,0,arr.length-1);
System.out.print("遍历最终获得的数组中的元素得:");
ergodic(arr);
System.out.print("\n");
}
//定义一个函数,将数组遍历
public static void ergodic(int[] arr)
{
for (int i = 0; i < arr.length ; i++ )
{
System.out.print(arr[i] + " ");
}
System.out.println();
}


//定义一个倒序函数,将数组倒序排列
public static void reverseArray(int[] arr)
{
//定义变量start记录数组开始的角标,定义变量end记录数组的结束的角标
//
for (int start = 0,end = arr.length-1; start < end ; start++,end-- )
{
swap(arr,start,end);
}
ergodic(arr);


}


//定义一个换位函数,具体实现两个数组元素的位置互换
public static void swap(int[] arr,int x, int y)
{
//定义一个暂存变量temp,用于暂时存放变量的值
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}


//定义一个方法,实现将数组中每个元素+5的操作
public static void plusFive(int[] arr)
{
System.out.print("原数组元素加5之后遍历结果为:");
for (int i = 0; i < arr.length ;i++ )
{
int j = i;
arr[j] = arr[i]+5; 
}
ergodic(arr);
}


//定义一个方法,实现数组中每个元素除以10取余数的操作
public static void remainder(int[] arr)
{
System.out.print("原数组元素加5除以10取余数之后遍历结果为:");
for (int i = 0; i < arr.length ;i++ )
{
int j = i;
arr[j] = arr[i]%10; 
}
ergodic(arr);
}

}

菜鸟刚学的内容,自己写下来真不容易,秀秀。自己加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值