数组排列计算

/*
数组习题:
数组加密=某个公司用公用电话传递数据信息,数据是小于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);
}

}

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

### MATLAB 中的数组计算方法 #### 数组基本运算 MATLAB 提供了丰富的内置函数来进行高效的数组操作。对于两个相同大小的数组 `A` 和 `B`,可以直接执行加法、减法、乘法以及除法等基本算术运算: ```matlab % 创建两个 3x3 的随机矩阵 A 和 B A = rand(3); B = rand(3); C_addition = A + B; % 加法 C_subtraction = A - B; % 减法 C_multiplication = A .* B; % 元素级乘法 C_division = A ./ B; % 元素级除法 ``` 上述代码展示了如何创建两个随机数构成的 3×3 矩阵并对其实施四种基础运算[^1]。 #### 使用内置函数处理数组 除了简单的四则运算外,MATLAB 还拥有大量用于数据处理的强大工具。例如可以利用 `sum()` 来求和、`mean()` 计算平均值、`max()`, `min()` 查找最大最小值等等: ```matlab vector_example = [1, 2, 3]; total_sum = sum(vector_example); % 对向量中的所有元素求和 average_value = mean(vector_example); % 获取向量中各元素均值 maximum_element = max(vector_example); % 找到向量里的最大项 minimum_element = min(vector_example); % 寻找向量内的最小项 ``` 这些例子说明了怎样运用特定的功能去分析一组数值型的数据集。 #### 处理特殊类型的数组变换 当涉及到更复杂的转换需求时,比如反转或扩展现有结构,则有专门设计好的命令可供调用。要实现将一个给定的一维水平方向上的序列反序排列,可采用如下方式完成: ```matlab original_vector = [10, 9, 8]; reversed_vector = fliplr(original_vector); % 左至右翻转行向量 ``` 这段脚本实现了把原有一维水平列表按照相反顺序重新组织的效果[^2]。 另外,在某些情况下可能还需要往已有的集合里补充额外的信息作为占位符或是为了保持形状一致性的目的而做必要的扩充工作。这时就可以借助于像 `padarray()` 这样的实用程序来做相应的调整: ```matlab initial_array = ones(2, 3); padded_result = padarray(initial_array,[1 1],'post'); % 向二维数组后面填充零 ``` 此部分演示了通过指定参数来控制新增位置及数量从而达到预期目标的方法[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值