请解释以下帕斯卡三角代码
Please explain the following Pascal's Triangle Code
在提供的帕斯卡三角形代码中,如果有人能帮我解决以下疑惑,我将不胜感激。
1 public class Pascal {
2
3 static void calculatePascal (int[][] t) {
4 for (int i=0; i<t.length; i++) {
5 // the first entry in each row is 1
6 t[i][0] = 1;
7
8 for (int j=1; j<t[i].length-1; j++) {
9
10 t[i][j] = t[i-1][j-1] + t[i-1][j];
11 }
12 // the last entry in each row is 1
13 t[i][ t[i].length-1 ] = 1;
14 }
15 }
16
17 static void printTriangle (int[][] t) {
18 for (int i=0; i<t.length; i++) {
19 for (int j=0; j<t[i].length; j++) {
20 System.out.print( t[i][j] + " " );
21 }
22 System.out.println();
23 }
24 }
25
26 public static void main (String[] args) {
27 int lines = Integer.parseInt( args[0] );
28 int[][] triangle = new int[lines][];
29 for (int i=0; i<lines; i++) {
30 triangle[i] = new int[ i+1 ];
31 }
32 calculatePascal(triangle);
33 printTriangle(triangle);
34 }
35
36 }
第30行是什么意思?在第 28 行中,我们创建了一个称为三角形的二维数组。第 30 行正在做什么?
在这种情况下如何缩进三角形形式的 Pascal 三角形?
为什么我们将 calculatePascal 和 printTriangle 这两个方法的 return 类型声明为 void ?
- 在第 28 行中,您创建了一维数组,该数组仍然包含默认分配的
null
个值。在第 30 行中,您将每个 null
替换为新数组,该数组的大小比其索引多 1。
- Java 中的二维数组实际上不是矩阵。它是数组的数组,所以它不需要是矩形的。在你的情况下:
triangle[0] = [1]
triangle[1] = [1, 1]
triangle[2] = [1, 2, 1]
triangle[3] = [1, 3, 3, 1]
...
- 你不需要return任何东西,因为在这里你对作为引用传递的数组执行操作。
在提供的帕斯卡三角形代码中,如果有人能帮我解决以下疑惑,我将不胜感激。
1 public class Pascal {
2
3 static void calculatePascal (int[][] t) {
4 for (int i=0; i<t.length; i++) {
5 // the first entry in each row is 1
6 t[i][0] = 1;
7
8 for (int j=1; j<t[i].length-1; j++) {
9
10 t[i][j] = t[i-1][j-1] + t[i-1][j];
11 }
12 // the last entry in each row is 1
13 t[i][ t[i].length-1 ] = 1;
14 }
15 }
16
17 static void printTriangle (int[][] t) {
18 for (int i=0; i<t.length; i++) {
19 for (int j=0; j<t[i].length; j++) {
20 System.out.print( t[i][j] + " " );
21 }
22 System.out.println();
23 }
24 }
25
26 public static void main (String[] args) {
27 int lines = Integer.parseInt( args[0] );
28 int[][] triangle = new int[lines][];
29 for (int i=0; i<lines; i++) {
30 triangle[i] = new int[ i+1 ];
31 }
32 calculatePascal(triangle);
33 printTriangle(triangle);
34 }
35
36 }
第30行是什么意思?在第 28 行中,我们创建了一个称为三角形的二维数组。第 30 行正在做什么?
在这种情况下如何缩进三角形形式的 Pascal 三角形?
为什么我们将 calculatePascal 和 printTriangle 这两个方法的 return 类型声明为 void ?
- 在第 28 行中,您创建了一维数组,该数组仍然包含默认分配的
null
个值。在第 30 行中,您将每个null
替换为新数组,该数组的大小比其索引多 1。 - Java 中的二维数组实际上不是矩阵。它是数组的数组,所以它不需要是矩形的。在你的情况下:
triangle[0] = [1]
triangle[1] = [1, 1]
triangle[2] = [1, 2, 1]
triangle[3] = [1, 3, 3, 1]
...
- 你不需要return任何东西,因为在这里你对作为引用传递的数组执行操作。