所以我对矩阵进行了这个练习,需要使用二维数组来完成。第一部分是 n,从 1 到 9。对于每一行,您需要输出第一个数字的乘法表。所以基本上:
依此类推直到9点。 这部分我通过以下方式解决了:
public static void main(String[] args) {
int[][] column = new int[][] { { 1 }, { 2 }, { 3 }, { 4 }, { 5 }, { 6 }, { 7 }, { 8 }, { 9 } };
int[][] row = new int[][] { { 1, 2, 3, 4, 5, 6, 7, 8, 9 } };
int[][] result = new int[column.length][row[0].length];
for (int i = 0; i < column.length; i++) {
for (int j = 0; j < row[0].length; j++) {
for (int n = 0; n < column[0].length; n++) {
result[i][j] += column[i][n] * row[n][j];
}
}
}
System.out.println("Teilaufgabe a: " + "\r\n");
for (int[] rowResult : result) {
System.out.println(Arrays.toString(rowResult));
}
}
}
现在我的问题在于练习的第二部分,其中每行需要与行[0]的数量一样长,基本上创建一个楼梯结构。
它应该看起来像这样:
等等
我怎样才能做到这一点?我一直在努力实现它,它一定与循环有关,但我已经尝试了大约一周来解决这个问题,所以非常感谢所有帮助! 对我已经工作的代码的批评也值得赞赏,因为我的一个朋友在评论中说我在这个问题上使用 3 个 for 循环很奇怪
我尝试在第三个 for 循环中更改内容,但不太明白。我的另一个想法是创建第二个“int[][] result2”并让它在自己的第四个循环中运行,但我无法弄清楚循环的参数来做我想做的事情,所以我放弃了它。
在循环内创建所需长度的新数组
int[][] result = new int[9][];
for (int i = 0; i < result.length; i++) {
result[i] = new int[i+1];
for (int j = 0; j < result[i].length; j++) {
result[i][j] = (j+1) * (j+1);
}
}
for (int[] rowResult : result) {
System.out.println(Arrays.toString(rowResult));
}