【发布时间】:2015-07-05 20:33:23
【问题描述】:
在提供的 Pascal Triangle 代码中,如果有人能帮助我消除以下疑虑,我将不胜感激。
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 行中正在做什么?
在这种情况下如何将帕斯卡三角形缩进为三角形?
为什么我们将 calculatePascal 和 printTriangle 方法的返回类型都声明为 void?
【问题讨论】:
-
@SashaSalauyou 不是 triangle[ ][ ] 二维数组吗?它包含两件事:行数和未声明的列数?
-
查看我的答案以获得解释
-
这正是我的困惑,因为第 28 行是三角形 [ ][ ],而第 30 行是三角形 [ ]。
-
这不是帕斯卡。
new int[][]你没有声明矩形数组。您声明了一个平面数组,它将保存int[]作为值,即。 e.数组数组。
标签: java arrays static-methods pascals-triangle