(1)概念:
下标和相等的数字矩阵指的是每一条斜线上各元素和相等。
(2)代码实现:将斜线上对称位置的元素交换位置
import java.util.Scanner;
/**
* @date 2017-5-30
* @author liuffei
* @description 寻找下标和相等的数字方阵
*/
public class NumberMatrix {
/**
* 创建一个二维方阵
* @param n 方阵的维数
* @return 二维方阵
*/
public static int[][] returnMatrix(int n){
int matrix[][] = new int[n][n];
int count = 1;
for(int i = 0;i < n;i++){
for(int j = 0;j < n;j++){
matrix[i][j] = count++;
}
}
return matrix;
}
/**
* 得到下标和相等的矩阵:将对角线左右两边对称的数字对换位置
* @param matrix 初始矩阵
* @return
*/
public static int[][] reverseMatrix(int[][] matrix){
int len = matrix.length;
for(int i = 0;i < len;i++){
for(int j = 0;j <= i;j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
return matrix;
}
/**
* 打印矩阵
* @param matrix 矩阵
*/
public static void printMatrix(int[][] matrix){
int row = matrix.length;
for(int i = 0;i < row;i++){
for(int j = 0;j < matrix[i].length;j++){
System.out.print(matrix[i][j] + " ");
}
System.out.println("");
}
}
public static void main(String[] args) {
System.out.println("请输入方阵的秩:");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
int originalMatrix[][] = returnMatrix(input);
System.out.println("============初始矩阵是:============");
printMatrix(originalMatrix);
int finalMatrix[][] = reverseMatrix(originalMatrix);
System.out.println("============与初始矩阵下标和相等的矩阵是:============");
printMatrix(finalMatrix);
}
}
(3)结果