Java语言怎么用斜线的方法来计算矩阵的加法

Java语言怎么用斜线的方法来计算矩阵的加法?斜线绕回相加在矩阵里面实现的过程是怎么样的?

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

img


是我理解的这个斜线相加吧?


import java.util.Arrays;

public class ArrayTest {
    public static void main(String[] args) {
        int[][] arr = new int[6][7];
        int total = 0;
        // 赋初始值
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = i * 10 + j;
                total += arr[i][j];
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(Arrays.toString(arr[i]));
        }

        int row = 0;// 行自增方向 1向下,-1向上
        int col = 1;// 列自增方向 1向右,-1向左
        int sum = 0;
        int i = 0;
        int j = 0;
        while (i < arr.length && j < arr[i].length) {
            sum += arr[i][j];
            System.out.println(arr[i][j]);
            if (i == 0 && (row == -1 || row == 0)) {// 该向左下了
                row = 1;
                col = -1;
                if (j == arr[i].length - 1) {// 如果右边到头了,得从下一行开始
                    i++;
                } else {
                    j++;
                }
                continue;
            }
            if (j == arr[i].length - 1 && col == 1) {// 该向左下了
                row = 1;
                col = -1;
                i++;
                continue;
            }
            if (j == 0 && col == -1) {// 该向右上了
                row = -1;
                col = 1;
                if (i == arr.length - 1) {// 如果到了最底下那一行,得从右边的开始了
                    j++;
                } else {
                    i++;
                }
                continue;
            }
            if (i == arr.length - 1 && row == 1) {// 该向右上了
                row = -1;
                col = 1;
                j++;
                continue;
            }

            i += row;
            j += col;
        }
        System.out.println();
        System.out.println(sum == total);
    }
}