【发布时间】:2016-08-10 18:04:05
【问题描述】:
我想摆脱我方法中的零。有谁知道如何做到这一点?我是否必须将矩阵转换为字符串,或者我可以以某种方式删除整数矩阵中的元素?
来自:
1 0 0 0 0
1 1 0 0 0
1 2 1 0 0
1 3 3 1 0
1 4 6 4 1
至此:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
public static void writeElement(int[][] m){
int[][] b = new int[m.length][m.length];
for(int row=0; row<m.length; row++){
b[row][0] = 1;
}
for(int col=1; col<m.length; col++){
b[0][col]=0;
}
for(int row=1; row<m.length; row++){
for(int col=1; col<m[row].length; col++){
b[row][col] = (b[row-1][col-1] + b[row-1][col]);
}
}
for(int i=0; i<b.length; i++){
for(int j=0; j<b[i].length; j++){
System.out.print(b[i][j] + " ");
}
System.out.println();
}
}//writeElement
【问题讨论】:
-
您到底想完成什么?您是想简单地不打印
0s,还是真的想修改m以用较短的数组替换尾随零元素的数组? -
@rabbitguy 这不是一个真正的二维数组,它只是一个 int 数组的数组。并非所有数组都必须具有相同的长度。拥有类似
int[][] m = { { 1 }, { 1, 2 }, { 1, 2, 3 } };的东西是完全合法的 -
我想创建一个 n*n 矩阵并在没有零的情况下打印它。是的,我只是不想打印它们。但是由于计算矩阵的其余部分需要第一行 0,我想我必须在创建具有 0 的矩阵之后摆脱它们。抱歉,我是 java 的大菜鸟!
标签: java matrix multidimensional-array