java – 使用基本逻辑创建N乘N对角矩阵

前端之家收集整理的这篇文章主要介绍了java – 使用基本逻辑创建N乘N对角矩阵前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个N大小的矩阵,其中N是全局定义的常量值,现在我只想创建一个N = 6的矩阵.我在哪里,我想让它对角线,就像这样:
0 1 2 3 4 5
1 0 1 2 3 4
2 1 0 1 2 3
3 2 1 0 1 2
4 3 2 1 0 1
5 4 3 2 1 0

目前我有这个方法

public static void drawMatrix(){
    for (int line = 0; line < N; line++){
        for (int j = 0; j < N; j++){
            System.out.print(j + " ");
        }
        System.out.println();
    }
}

不幸的是,它只能在每一行打印0 1 2 3 4 5,所以我想我需要另一个嵌套for循环,但是我不知道如何设置它.

解决方法

j是列号,因此对于所有行都是相同的.您需要做的是根据行号添加或减去行号,以便进行“移动”.由于结果可能变为负值,您需要将N和mod添加为N:
if (j > line) {
    System.out.print((N-line+j)%N + " ");
} else {
    System.out.print((line-j+N)%N + " ");
}

Demo.

如果使用条件表达式,也可以重写它:

int sign = j > line ? -1 : 1;
System.out.print((N+sign*(line-j))%N + " ");

Demo.

原文链接:https://www.f2er.com/java/124496.html

猜你在找的Java相关文章