java – 使用基本逻辑创建N乘N对角矩阵
发布时间:2020-12-14 16:43:58 所属栏目:Java 来源:网络整理
导读:我想创建一个N大小的矩阵,其中N是全局定义的常量值,现在我只想创建一个N = 6的矩阵.我在哪里,我想让它对角线,就像这样: 0 1 2 3 4 51 0 1 2 3 42 1 0 1 2 33 2 1 0 1 24 3 2 1 0 15 4 3 2 1 0 目前我有这个方法: public static void drawMatrix(){ for (in
我想创建一个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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |