Und*_*ish 10 java for-loop matrix
我想创建一个大小为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
Run Code Online (Sandbox Code Playgroud)
目前我有这个方法:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是它只能在每一行打印0 1 2 3 4 5,所以我想我需要另一个嵌套的for循环,但是我不知道如何设置它.
das*_*ght 10
j是列号,因此对于所有行都是相同的.您需要做的是j根据行号添加或减去行号,以便进行"转移".由于结果可能变为负值,你将需要添加N和国防部通过N:
if (j > line) {
System.out.print((N-line+j)%N + " ");
} else {
System.out.print((line-j+N)%N + " ");
}
Run Code Online (Sandbox Code Playgroud)
您也可以在不if使用条件表达式的情况下重写它:
int sign = j > line ? -1 : 1;
System.out.print((N+sign*(line-j))%N + " ");
Run Code Online (Sandbox Code Playgroud)
小智 6
您的代码稍有变化
public static void drawMatrix() {
for(int line = 0; line < N; line++) {
for(int j = 0; j < N; j++) {
System.out.print(Math.abs(line - j) + " ");
}
System.out.println();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |