java:下标和相等的数字方阵。
import java.util.Scanner;
class MatrixTest {
public static void main(String[] args) {
System.out.println("输入矩阵的阶:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
way(n);
}
public static void way(int n) {
int[][] ints = new int[n][n];
int count = 1;
boolean up = true;
//左上三角形
for (int i = 0; i < n; i++) {//i是下标和
if (up) {
for (int j = 0; j <= i; j++) {
ints[j][i - j] = count++;
}
} else {
for (int j = 0; j < i; j++) {
ints[i - j][j] = count++;
}
up = !up;
}
}
//右下角三角形
for (int i = n; i < 2 * n - 1; i++) {
if (up) {
for (int j = i - n + 1; j < n; j++) {
ints[j][i - j] = count++;
}
} else {
for (int j = i - n + 1; j < n; j++) {
ints[i - j][j] = count++;
}
up = !up;
}
}
System.out.println("第一种");
printable(ints);
MatrixTest.exchangeMatrix(ints);
System.out.println("第二种");
printable(ints);
}
//将对角线左右两边对称的数字对换位置
public static int[][] exchangeMatrix(int[][] ints) {
for (int i = 0; i < ints.length; i++) {
for (int j = 0; j <= i; j++) {
int temp = ints[i][j];
ints[i][j] = ints[j][i];
ints[j][i] = temp;
}
}
return ints;
}
//打印
public static void printable(int[][] ints) {
for (int i = 0; i < ints.length; i++) {
for (int j = 0; j < ints[i].length; j++) {
System.out.print(" " + ints[i][j]);
}
System.out.println();
}
}
}